C Academy · पाठ

register और const

Hints और immutability

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

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

register संकेत

register यह सुझाव देता है कि गति बढ़ाने के लिए किसी चर को CPU रजिस्टर में रखा जाए। यह केवल एक संकेत है; आधुनिक कंपाइलर इसे आम तौर पर अनदेखा करते हैं।

#include <stdio.h>
int main(void) {
    register int i;
    int sum = 0;
    for (i = 0; i < 5; i++)
        sum += i;
    printf("sum = %d\n", sum);
    return 0;
}

आप इसका पता नहीं ले सकते

क्योंकि कोई register चर मेमरी में मौजूद न भी हो सकता है, इसलिए आप & से उसका पता नहीं ले सकते।

#include <stdio.h>
int main(void) {
    register int x = 10;
    printf("x = %d\n", x);
    return 0;
}

आज register कम क्यों उपयोग होता है

अनुकूलन करने वाले कंपाइलर पहले से ही बार-बार उपयोग होने वाले चरों को रजिस्टरों में रखते हैं। अब यह कीवर्ड मुख्यतः ऐतिहासिक महत्व रखता है।

#include <stdio.h>
int main(void) {
    int product = 1;
    for (register int i = 1; i <= 4; i++)
        product *= i;
    printf("product = %d\n", product);
    return 0;
}

const क्वालिफ़ायर

const आरंभीकरण के बाद किसी चर को केवल-पठन बना देता है। उसे बदलने का प्रयास कंपाइल-त्रुटि उत्पन्न करता है।

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

स्थिरांक आशय स्पष्ट करते हैं

स्थिर मानों के लिए const का उपयोग कोड को स्पष्ट बनाता है और अनचाहे बदलावों से बचाता है।

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

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

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

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

स्थिर पॉइंटर

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

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

const फ़ंक्शन पैरामीटर

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

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

डिज़ाइन से अपरिवर्तनीय

जिस भी मान को बदलना नहीं चाहिए, उसके लिए const को प्राथमिकता दीजिए। यह कंपाइल समय पर बग पकड़ता है।

#include <stdio.h>
int main(void) {
    const int LIMIT = 100;
    int x = 90;
    if (x < LIMIT)
        printf("under limit\n");
    return 0;
}

const और वैश्विक चर का संयोजन

वैश्विक const पूरे फ़ाइल में उपलब्ध एक सुरक्षित, साझा स्थिरांक होता है।

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

register और const साथ में

आप लूप काउंटर को दोनों तरह से चिह्नित कर सकते हैं, हालाँकि यहाँ const का अर्थ है कि लूप बॉडी को उसे बदलना नहीं चाहिए।

#include <stdio.h>
int main(void) {
    int sum = 0;
    for (int i = 0; i < 3; i++) {
        const int doubled = i * 2;
        sum += doubled;
    }
    printf("sum = %d\n", sum);
    return 0;
}

त्वरित जाँच

register और const की अपनी समझ जाँचिए।

पुनरावृत्ति: register और const

आपने दो क्वालिफ़ायर के बारे में सीखा।

  • register रजिस्टर में संग्रहण का संकेत देता है, लेकिन आम तौर पर अनदेखा किया जाता है
  • आप register चर का पता नहीं ले सकते
  • const किसी मान को केवल-पठन बना देता है
  • पॉइंटर की constness के दो प्रकार हैं: स्थिर मान और स्थिर पॉइंटर
  • सुरक्षा के लिए const का भरपूर उपयोग कीजिए
शुरुआत निःशुल्क

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. auto और Local Scope
  2. static Variables
  3. extern और Global
  4. register और const
← C Academy पर वापस जाएँ