2009-01-27 12 views

उत्तर

83

एक शाब्दिक है (wikipedia)

" स्रोत कोड के भीतर एक मूल्य के प्रतिनिधित्व करने के लिए किसी भी संकेत" (पहचानकर्ता, जो स्मृति में एक मूल्य के लिए उल्लेख के साथ इस कंट्रास्ट।)

उदाहरण:

  • "hey" (एक स्ट्रिंग)
  • false (एक बूलियन)
  • 3.14 (एक वास्तविक संख्या)
  • [1,2,3] (नंबरों की सूची)
  • (x) => x*x (एक समारोह)
  • /^1?$|^(11+?)\1+$/ (एक regexp)

कुछ चीजें हैं जो शाब्दिक नहीं हैं:

  • std::cout (एक पहचानकर्ता)
  • foo = 0; (एक बयान)
  • 1+2 (एक अभिव्यक्ति)
+3

रेगेक्स शाब्दिक –

+0

के लिए अपवोट दुख की बात है कि मुझे नहीं पता कि यह प्राथमिकता निर्धारित करने का प्रबंधन कैसे करता है। मैंने बस इसे कहीं से कॉपी किया क्योंकि यह अच्छा लग रहा था –

+1

मुझे यह भी पता नहीं था कि उसने क्या किया: मैंने सोचा कि एक रेगेक्स शाब्दिक दिखाना अच्छा विचार था। –

14

एक शाब्दिक, इस तरह के

int i = 4; // i is assigned the literal value of '4' 
int j = i // j is assigned the value of i. Since i is a variable, 
      //it can change and is not a 'literal' 

के रूप में एक स्पष्ट मूल्य के लिए एक काम है संपादित करें: जैसा कि बताया, असाइनमेंट अपने आप में एक शाब्दिक की परिभाषा के साथ कोई संबंध नहीं है, मैं अपने उदाहरण में काम उपयोग कर रहा था, लेकिन एक शाब्दिक भी एक विधि में पारित किया जा सकता है, आदि

+0

हे, किसी ने इसे डाउनोट किया ??? –

+0

हाँ: शाब्दिकों के पास असाइनमेंट के साथ कुछ लेना देना नहीं है;) –

+0

यह सच है, मुझे इस तथ्य को स्पष्ट करना चाहिए था कि मैं यह दिखाने के लिए असाइनमेंट का उपयोग कर रहा था कि एक शाब्दिक क्या है। –

3

जब आप इसे कोड में डालते हैं तो एक शाब्दिक होता है। तो एक स्ट्रिंग शाब्दिक

string s = "SomeText"; 

इस स्ट्रिंग के निर्माण, या एक पैरामीटर के रूप में यह में लेने के लिए के रूप में विरोध किया है।

64

एक शाब्दिक एक मूल्य है जो सीधे आपके स्रोत में हार्ड-कोड किया गया है।

उदाहरण के लिए:

string x = "This is a literal"; 
int y = 2; // so is 2, but not y 
int z = y + 4; // y and z are not literals, but 4 is 
int a = 1 + 2; // 1 + 2 is not a literal (it is an expression), but 1 and 2 considered separately are literals 

कुछ शाब्दिक एक विशेष वाक्य रचना कर सकते हैं, तो आप शाब्दिक टाइप क्या पता है:

//The 'M' in 10000000M means this is a decimal value, rather than int or double. 
var accountBalance = 10000000M; 

क्या उन्हें अलग करता है चर या संसाधनों कि संकलक है उन्हें स्थिरांक के रूप में इलाज कर सकते हैं या कोड के साथ कुछ अनुकूलन निष्पादित कर सकते हैं जहां उनका उपयोग किया जाता है, क्योंकि यह निश्चित है कि वे नहीं बदलेंगे।

+5

यह क्यों कम किया गया था? –

+6

मुझे यह दिखाने का प्रयास करने के बजाय कि आपने कितना पता किया है, इस तरह से आपको नए तरीके को भ्रमित करने के तरीके से प्यार है। हमें आपके जैसे अधिक लोगों की जरूरत है। –

+1

आसान और दृढ़ विश्वास। धन्यवाद – Johnny

4

त्वरित उदाहरण:

पूर्णांक my_int_var = 723;

723 - वर्णों का यह सेट शाब्दिक पूर्णांक मान को संदर्भित करता है।

my_int_var - वर्णों का यह सेट परिवर्तनीय पूर्णांक मान को संदर्भित करता है।

6

एक शाब्दिक मूल्य एक मूल्य है, लेकिन एक मूल्य भी एक में संग्रहीत किया जा सकता है चर। बयान में

string str = "string literal"; 

एक स्ट्रिंग चर (स्ट्र) और स्ट्रिंग अक्षर है। बयान के निष्पादित होने के बाद दोनों के पास एक ही मूल्य है।

पता है कि कई भाषाओं में चर और शाब्दिक मूल्य जरूरी भी एक ही प्रकार होना जरूरी तो नहीं रखा गया। उदाहरण के लिए:

int a = 1.0; 

उपरोक्त शाब्दिक मूल्य एक फ़्लोटिंग पॉइंट प्रकार है। इंट चर चर में फिट करने के लिए संकलक द्वारा मूल्य को मजबूर किया जाएगा।

एक और उदाहरण के लिए, स्ट्रिंग अक्षर के प्रकार के ऊपर सी ++ कोड की पहली पंक्ति में वास्तव में लाइब्रेरी प्रकार string नहीं है। सी के साथ पिछड़ा संगतता बनाए रखने के लिए, सी ++ में स्ट्रिंग अक्षर चार सरणी हैं।

1

मैं लापरवाही से इस्तेमाल किया क्या C# specification वास्तव में के रूप में शब्दशः स्ट्रिंग शाब्दिक को संदर्भित करता है का उल्लेख करने के स्ट्रिंग शाब्दिक सुना है। एक नियमित स्ट्रिंग शाब्दिक कुछ अक्षरों से बचने की अनुमति देता है (एक द्वारा prefixed), जैसे टैब के लिए \ t। एक verbatim स्ट्रिंग शाब्दिक @ और संसाधित verbatim द्वारा preended है, \ कोई विशेष अर्थ नहीं है।

//regular 
string regular = "\thello world"; 
//verbatim 
string verbatim = @"C:\"; 
//the regular equivalent of this would be "C:\\" 
9

एक शाब्दिक तब होता है जब आप स्रोत कोड में मान शामिल करते हैं (जैसा कि एक चर या निरंतर संदर्भ के विपरीत)। उदाहरण के लिए:

int result = a + 5; // a is a variable with a value, 5 is a literal 

string name = "Jeff Atwood"; // name is a variable initialized 
          // with the string literal, "Jeff Atwood" 

int[] array = new int[] {1, 2, 3}; // C# has array literals (this is actually three 
            // int literals within an array literal) 

शाब्दिक कुछ मात्रा का प्रतिनिधित्व करता है, तो एक भौतिक निरंतर की तरह, यह यह बजाय हर कहीं एक ही शाब्दिक लेखन की एक नाम देने के लिए बेहतर है। इस तरह, जब आप स्रोत कोड पढ़ रहे हैं, तो आप जानते हैं कि का अर्थ है, जो आमतौर पर इसके मूल्य से अधिक महत्वपूर्ण होता है (जो वैसे भी बदल सकता है)।

const int maxUsers = 100; 
const double gravitationalAcceleration = 9.8; 

आम तौर पर, केवल संख्यात्मक शाब्दिक मैं (अलावा ऊपर की तरह स्थिरांक प्रारंभ करने में) का उपयोग 0 या 1, और कभी कभी 2 अगर मैं एक पाश में हर दूसरे मद लंघन कर रहा हूँ कर रहे हैं। यदि का अर्थ है, तो इसकी वास्तविक मान (आमतौर पर यह है) की तुलना में अधिक महत्वपूर्ण है, इसे नाम देने के लिए बेहतर है।

2

आम तौर पर जब कोई शब्द शाब्दिक शब्द का उपयोग करता है तो उनका मतलब है कि मान कोड (टेक्स्ट) से समझ में आता है जैसा कि अन्य पदों में कई उदाहरणों में दिखाया गया है।

एक और आम उपयोग मूल्यों के लिए है जो असेंबली में तत्काल मूल्यों में परिवर्तित हो जाते हैं। ये वे मान हैं जो सीधे पंजीकरण लोड की आवश्यकता के बजाय मशीन निर्देश में डाले जाते हैं।

11

प्रोग्रामिंग में, एक मूल्य लिखा गया है जैसा कि इसका अर्थ है। इसके विपरीत, एक चर एक ऐसा नाम है जो प्रोग्राम के निष्पादन के दौरान विभिन्न मानों का प्रतिनिधित्व कर सकता है। और एक निरंतर एक ऐसा नाम है जो पूरे कार्यक्रम में समान मूल्य का प्रतिनिधित्व करता है। लेकिन एक शाब्दिक नाम नहीं है - यह मूल्य ही है।

एक शाब्दिक एक संख्या, एक चरित्र, या एक स्ट्रिंग हो सकता है। उदाहरण के लिए, अभिव्यक्ति में,

एक्स = 3

एक्स एक चर रहा है, और 3 एक शाब्दिक है।

1

एक शाब्दिक "डेटा का स्रोत कोड प्रतिनिधित्व" है।

संबंधित मुद्दे