C Academy · पाठ

const Variables

मानों को केवल-पठन योग्य बनाएँ।

पाठ 3, कुल 4 में से13 चरण

const Variables, CoddyKit पर C Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह C Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

const का अर्थ

const कीवर्ड कंपाइलर को बताता है कि किसी चर का मान आरंभीकरण के बाद नहीं बदलना चाहिए।

यदि आप बाद में इसे बदलने का प्रयास करते हैं, तो कंपाइलेशन विफल हो जाता है। इससे वे मान सुरक्षित रहते हैं जिन्हें स्थिर रहना चाहिए।

const int MAX_USERS = 100;

const घोषित करना

आपको const चर घोषित करते समय ही उसका मान देना आवश्यक है, क्योंकि बाद में उसमें मान निर्दिष्ट नहीं किया जा सकता।

यहाँ PI को एक बार आरंभ किया गया है और पढ़ने के लिए किसी सामान्य चर की तरह उपयोग किया गया है।

#include <stdio.h>
int main(void) {
    const double PI = 3.14159;
    printf("%f\n", PI);
    return 0;
}

const बदलने का प्रयास

घोषणा के बाद किसी const को मान निर्दिष्ट करना कंपाइलेशन त्रुटि है।

नीचे की पंक्ति को कंपाइलर अस्वीकार कर देगा, और यही वह सुरक्षा है जो हमें चाहिए।

const int LIMIT = 50;
/* LIMIT = 60; <- compile error */

const का प्रकार होता है

कच्चे मैक्रो के विपरीत, const चर का वास्तविक प्रकार होता है जिसकी जाँच कंपाइलर करता है।

इससे प्रकार-सुरक्षा मिलती है: कंपाइलर जानता है कि RATE एक double है और गलत उपयोग पर चेतावनी देता है।

#include <stdio.h>
int main(void) {
    const double RATE = 0.05;
    double total = 200.0 * RATE;
    printf("%.2f\n", total);
    return 0;
}

पॉइंटर के साथ const: डेटा

पॉइंटर की const-ness के दो रूप होते हैं। const int *p का अर्थ है कि p के माध्यम से जिस डेटा की ओर संकेत किया गया है, उसे बदला नहीं जा सकता।

आप p को किसी दूसरी जगह संकेत करने के लिए बदल सकते हैं, लेकिन उसके माध्यम से उसमें मान नहीं लिख सकते।

int x = 5;
const int *p = &x;
/* *p = 9; <- error: data is const */

पॉइंटर के साथ const: पॉइंटर

int *const p का अर्थ है कि पॉइंटर को स्वयं दोबारा निर्दिष्ट नहीं किया जा सकता, लेकिन डेटा बदला जा सकता है।

घोषणाओं को दाएँ से बाएँ पढ़िए: "p, int की ओर संकेत करने वाला const पॉइंटर है"।

int x = 5, y = 8;
int *const p = &x;
*p = 9;       /* allowed */
/* p = &y;    <- error: pointer is const */

फ़ंक्शन तर्कों की सुरक्षा

पॉइंटर पैरामीटर को const चिह्नित करना यह वादा करता है कि फ़ंक्शन कॉल करने वाले के डेटा में बदलाव नहीं करेगा।

यह उद्देश्य को स्पष्ट करता है और कंपाइलर को अनजाने में किए गए लेखन पकड़ने देता है।

#include <stdio.h>
void show(const char *msg) {
    printf("%s\n", msg);
}
int main(void) {
    show("hello");
    return 0;
}

गणना में const

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

स्थिरांक को पढ़ने से फ़ॉर्मूला स्पष्ट रहता है और मान एक ही स्थान पर रहता है।

#include <stdio.h>
int main(void) {
    const double KM_PER_MILE = 1.609;
    double miles = 10.0;
    printf("%.2f km\n", miles * KM_PER_MILE);
    return 0;
}

Const का मेमोरी स्थान होता है

क्योंकि const एक वास्तविक वेरिएबल है, इसलिए यह मेमोरी में स्थान घेरता है और आप इसका पता ले सकते हैं।

यह #define मैक्रो से अलग है, जो बिना किसी पते के केवल टेक्स्ट प्रतिस्थापन करता है।

#include <stdio.h>
int main(void) {
    const int N = 42;
    const int *p = &N;
    printf("%d\n", *p);
    return 0;
}

स्कोप और जीवनकाल

const साधारण वेरिएबलों जैसे ही स्कोप नियमों का पालन करता है।

फ़ंक्शन के अंदर घोषित करने पर यह स्थानीय होता है; बाहर घोषित करने पर वैश्विक। यह स्कोप फ़ाइल-व्यापी मैक्रो की तुलना में एक और लाभ है।

#include <stdio.h>
const int GLOBAL_MAX = 1000;
int main(void) {
    const int local_min = 1;
    printf("%d %d\n", local_min, GLOBAL_MAX);
    return 0;
}

const और मैजिक नंबर

अपने कोड में सीधे लिखी संख्याओं को नाम वाले const मानों से बदलने पर “मैजिक नंबर” हट जाते हैं।

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

#include <stdio.h>
int main(void) {
    const int SECONDS_PER_MIN = 60;
    int minutes = 5;
    printf("%d seconds\n", minutes * SECONDS_PER_MIN);
    return 0;
}

त्वरित जाँच

const के व्यवहार की अपनी समझ जाँचिए।

पुनरावृत्ति

const वेरिएबल एक प्रकार वाला, केवल-पठनीय मान होता है, जिसे कंपाइलर बदलाव से सुरक्षित रखता है।

मैक्रो के विपरीत, इसका एक प्रकार, स्कोप और पता होता है। पॉइंटर के साथ const डेटा, पॉइंटर या दोनों पर लागू हो सकता है। आगे हम इसकी तुलना #define से करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ C सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
39
पाठ
144

अक्सर पूछे जाने वाले प्रश्न

क्या “const Variables” पाठ निःशुल्क है?

हाँ—“const Variables” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और C Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। C Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“const Variables” में मैं क्या सीखूँगा?

मानों को केवल-पठन योग्य बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या C Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“const Variables” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस C Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर C Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Enums परिभाषित करना
  2. Enum मान और Ranges
  3. const Variables
  4. #define Constants
← C Academy पर वापस जाएँ