LValue Required Error : The Arithmetical Instruction

LValue Required : एक Arithmetical Instruction में हमेंशा एक Assignment Operator का प्रयोग करके किसी Calculation से प्राप्त परिणाम को किसी Variable में Store करना होता है। Assignment Operator के Left Side में हमेंशा एक Variable ही हो सकता है, जबकि इसके Right Side में Calculation में भाग लेने वाले Variable व Constants का पूरा एक समूह हो सकता है।

किसी Assignment Operator के Left Side में हम कभी भी किसी Constant Identifier को Place नहीं कर सकते हैं। यदि हम ऐसा करते हैं, तो Compiler हमें “Lvalue Required” नाम का एक Error प्रदान करता है। यानी

    int x, y = 10;
    x = y + 2;

यदि हम उपरोक्त Instruction लिखते हैं, तो Program में किसी तरह का कोई Error Generate नहीं होगा और y + 2 Expression से Generate होने वाला Resultant मान 12 Variable x में Store हो जाएगा। लेकिन यदि हम इसी Instruction के मानों की Position को निम्नानुसार Exchange कर दें, तो हमें “Lvalue Required” का Error Message प्राप्त होता है:

    int x, y = 10;
    y + 2 = x;     // Error: Lvalue required

ये Error हमें इसीलिए प्राप्त होता है, क्योंकि Assignment Operator ( = ) हमेंशा Right To Left Direction में Execute होता है और अपना पूरे Expression के Execute होने के बाद अपना काम अन्तिम Operation के रूप में करता है।

यानी जिस Expression में Assignment Operator का प्रयोग किया जाता है, उस Expression में सबसे पहले Assignment Operator के Right Side के सभी Operations Perform होते है और इन Operations से जो Resultant मान Generate होता है, Assignment Operator उस मान को Expression के सबसे अन्तिम Operation के रूप में अपने Left Side में Place किए गए Variable में Store कर देता है।

अब यदि किसी Expression में Assignment Operator के Left Side में किसी Variable के स्थान पर कोई Constant हो, तो Assignment Operator कभी भी किसी मान को किसी Constant में Store नहीं कर सकता है, क्योंकि Constant पूरे Program में स्थिर होते है, जिनका मान Change नहीं हो सकता है, जबकि Assignment Operator अपने Left Side के Variable का मान Change करने का ही काम करता है।

जब हम “C” Program में Division की प्रक्रिया को Perform करते हैं, तब प्राप्त होने वाले Result का चिन्ह निम्नानुसार होता है:

  -20/4 = -5
  20/-4 = +5

यानी यदि हम किसी Negative Sign वाली संख्‍या में किसी Positive Sign वाली संख्‍या का भाग देते हैं, तो Resultant मान भी Negative ही प्राप्त होता है। जबकि यदि हम किसी Positive Sign वाली संख्‍या में Negative Sing की संख्‍या का भाग देते हैं, तो प्राप्त होने वाला मान भी Positive Sign का होता है। सारांश ये है कि किसी “C” Program में भाग की प्रक्रिया करने पर Resultant मान का Sign Numerator या अंश के Sign के समान होता है।

हम हमारी जरूरत के आधार पर विभिन्न Characters को Computer की Memory में Store करते हैं। लेकिन Computer में कोई भी मान Character के रूप में Store नहीं होता है। हम जितने भी Character किसी Character Variable में Store करते हैं, वे सभी Characters Computer की Memory में Integers के रूप में ही Store होते हैं।

Computer में विभिन्न Characters को Represent करने के लिए एक Standard Code System Develop किया गया है। इस Code System में हर Character को एक Integer मान Assign किया गया है। हम जब भी किसी Character Identifier में किसी Character को Store करते हैं, वह Character उस Integer मान से Replace हो जाता है, और Computer की Memory में उस Character को Represent करने वाला Integer मान Store हो जाता है।

ठीक इसी तरह से जब हम उस Identifier में Stored Character को Display करना चाहते हैं, तब उस Character Identifier की Memory Location पर Stored Integer Code फिर से Character में Convert हो जाता है और हमें उस Character से Associated Code के स्थान पर वही Character दिखाई देता है। हर Character के साथ Associated Code को उस Character का ASCII Code कहते हैं।

उदाहरण के लिए यदि हम किसी Character प्रकार के Identifier में एक Character A Store करते हैं, तो वास्तव में Character A Computer की Memory में Store नहीं होता है, बल्कि ये Character A इसकी ASCII Code Value 65 से Replace हो जाता है और Identifier की Memory Location पर ये ASCII मान 65 Store हो जाता है।

जब हम फिर से उस Character को Access करना चाहते हैं, तब Computer इस ASCII Code 65 को Character A से Replace कर देता है और हमें Screen पर Character A दिखाई देता है ना कि ASCII Code 65,

वास्तव में एक Character प्रकार का Identifier एक छोटे Size के Integer मान को ही Computer की Memory में Store करता है। इसलिए यदि हम किसी Character Type के Identifier के मान को %c Control String का प्रयोग करके Display करते हैं, तो हमें उस Identifier में Stored Character Screen पर Display होता है, जबकि यदि हम %d Control String का प्रयोग करके उस Identifier के मान को Display करते हैं, तो हमें उस Character का ASCII Code Screen पर Display होता है। इस प्रक्रिया को हम निम्न Program द्वारा समझ सकते हैं:

Program:
#include <stdio.h>
#include <conio.h>

main()
{
 char x = 'A';
 printf("\n Character in the Identifier x is = %c ", x);
 printf("\n ASCII Code of the Character %c is = %d ", x, x);

 getch();
}

Output:
 Character in the Identifier x is = A
 ASCII Code of the Character A is = 65

C Programming Language in Hindi - BccFalna.com ये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook  C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C Programming Language in Hindi | Page: 477 + 265 | Format: PDF

BUY NOW GET DEMO REVIEWS