Zig Academy · पाठ

C पॉइंटर, स्ट्रिंग और प्रकार

C और Zig की प्रकार-प्रणालियों के बीच सेतु बनाइए।

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

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

C प्रकारों का अनुवाद होता है

जब Zig C को इंपोर्ट करता है, तो हर C प्रकार Zig के एक प्रकार से जुड़ जाता है। int c_int बन जाता है, इसलिए चौड़ाई C ABI से बिल्कुल मेल खाती है।

const x: c_int = 10;

C ABI के पूर्णांक

Zig ABI से मेल खाने वाले नाम जैसे c_int, c_uint, c_long और c_char देता है, ताकि आपके मान C की अपेक्षाओं के अनुरूप रहें।

C पॉइंटर [*c] का उपयोग करते हैं

कच्चा C पॉइंटर विशेष [*c]T प्रकार में बदल जाता है। यह null हो सकता है और ढीले रूप से परिवर्तित होता है, जिससे C के लचीले पॉइंटर प्रतिबिंबित होते हैं।

var p: [*c]u8 = null;

[*c] विशेष क्यों है

[*c] प्रकार C के किसी भी लंबाई वाले, संभवतः null पॉइंटर के बीच सेतु बनाता है। जहाँ संभव हो, यह Zig के slices और पॉइंटर से तथा उनमें परिवर्तित हो जाता है।

C स्ट्रिंग बाइट्स होती हैं

C स्ट्रिंग केवल शून्य पर समाप्त होने वाले बाइट्स का एक पॉइंटर होती है। इसमें लंबाई संग्रहीत नहीं होती, केवल null terminator होता है।

Null-terminated लिटरल

sentinel रूप का उपयोग करके C-शैली की स्ट्रिंग लिखें। प्रकार [*:0]const u8 उन बाइट्स को दर्शाता है जो 0 पर समाप्त होते हैं।

const s: [*:0]const u8 = "hello";

स्ट्रिंग C को दें

Zig के स्ट्रिंग लिटरल पहले से ही null-terminated होते हैं, इसलिए उन्हें char पॉइंटर की अपेक्षा करने वाले C फ़ंक्शन को सीधे दिया जा सकता है।

c.puts("done");

C स्ट्रिंग वापस पढ़ें

C स्ट्रिंग को Zig slice में बदलने के लिए std.mem.span का उपयोग करें। यह लंबाई जानने के लिए null बाइट तक चलता है।

const slice = std.mem.span(cstr);

void पॉइंटर

C का void* Zig में ?*anyopaque के रूप में दिखाई देता है। इसका उपयोग करने से पहले इसे किसी ठोस पॉइंटर प्रकार में कास्ट करें।

@ptrCast से कास्ट करें

C सीमा के पार पॉइंटर प्रकारों को जोड़ने के लिए @ptrCast का उपयोग होता है। यह पता बदले बिना पॉइंटर की नई व्याख्या करता है।

const p: *Node = @ptrCast(@alignCast(raw));

मेल कराएँ, अनुमान न लगाएँ

सुरक्षित आदत यह है कि C के सटीक प्रकारों से मेल कराएँ: int के लिए c_int और स्ट्रिंग के लिए span का उपयोग करें, ताकि कोई गलती चुपचाप न रह जाए।

त्वरित जाँच

याद करें कि Zig C स्ट्रिंग को उपयोग योग्य slice में कैसे बदलता है।

पुनरावृत्ति

आपने सीखा कि C प्रकार c_int जैसे ABI नामों से जुड़ते हैं, C पॉइंटर [*c] का उपयोग करते हैं और std.mem.span C स्ट्रिंग को slice में बदलता है। 🎯

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

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

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

पाठ्यक्रम
30
पाठ
120

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

क्या “C पॉइंटर, स्ट्रिंग और प्रकार” पाठ निःशुल्क है?

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

“C पॉइंटर, स्ट्रिंग और प्रकार” में मैं क्या सीखूँगा?

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

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

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

“C पॉइंटर, स्ट्रिंग और प्रकार” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

  1. @cImport से C हेडर आयात करना
  2. C फ़ंक्शन कॉल करना और लिंक करना
  3. C पॉइंटर, स्ट्रिंग और प्रकार
  4. zig translate-c से C को Zig के रूप में पढ़ना
← Zig Academy पर वापस जाएँ