Learn C (Short Notes)

Learn C: यदि आप C Language को अच्छे से सिख लेते हैं तो अन्य किसी भी Language को सीखना बहुत आसान हो जाता हैं । C से Operating System, C से ही MySQL और बहुत सी Programming Language को बनाया गया हैं इसलिए C को Mother of Many Programming Language कहा जाता हैं ।

इस आर्टिकल में आपको C Language के बारे में सब कुछ संक्षिप्त में बताया गया हैं , उसके बाद हर एक Topic पर एक Detail Article Link किया जाएगा, यह आर्टिकल आपको C Language के बारे में बारीकी से Topic को समझने में बहुत मदद करेगा । साथ ही यह आर्टिकल दो समय पर बहुत ही काम आने वाला हैं ।

  • दूसरा : यदि आपने C को Learn कर लिया हैं तो यह Exam Time पर Revision के लिए बहुत काम आने वाली हैं । क्युकी Revision के समय आप सभी Topic को पूरा-पूरा Read न कर Short में ही Read करते हैं और Remind करते जाते हैं ।
  • पहला : यदि आप C की शुआत कर रहे हैं तो इस आर्टिकल से आपको C का overview मिल जाएगा क्युकी इसमें C के सभी Topic को Short में Cover किया गया है ।


C/C++ Installation कैसे करते हैं ?

कोई भी Language पर शुरुआत करने के लिए हमें Installation करना होती हैं , आइये Installation करना सीखते हैं ।

C Language के लिए हमें एक कोई भी Text Editor लगता हैं और C Compiler लगता हैं यदि यह दोनों आपके पास हैं तो आप आसानी से C Language को अपने Computer में Install कर सकते हैं ।

  • Text Editor : Text Editor के लिए आप नोटपैड, notepad++ या अन्य कोई भी Text Editor ले सकते हैं मेरे द्वारा Visual Code का उपयोग किया गया हैं और आगे के सभी Notes मेरे द्वारा आपको Visual Code पर ही बताये जायेंगे ।
  • Compiler : Compiler के लिए आप MSYS2 से आप Mingw-w64 का Setup कर सकते हैं ।

C/C++ Installation के बारे में Detail में जानकारी के लिए यहाँ पर क्लिक करे।


C मे Syntax क्या हैं ? What is Syntax in C?

जब भी हमें Computer में प्रोग्राम बनाने होते हैं तो Processor को Instruction देना होते हैं , इन Instruction को देने के तरीके को ही Syntax या Statement कहा जाता हैं , Syntax के अलग अलग भाग होते हैं आइये हम एक एक कर सभी को समझते हैं ।

एक Syntax एक से अधिक Token से मिल कर बना होता हैं ।

Token : यह एक Word हैं जिसमे निम्न टाइप में बाटा जा सकता हैं ।

  • Keyword : Keyword Reserve Word होते हैं यह Complier में Set होते हैं । आप Keyword को किसी भी Variable के नाम रखते समय उपयोग में नहीं ले सकते हैं । keyword के नाम के कुछ उदाहरण इस प्रकार हैं जैसे auto, int, case, if, else आदि ।
auto breakcasechar
const continuedefaultdo
double elseenumextern
float for gotoif
int long register return
short signedsizeof static
struct switchtypedefunion
unsigned void volatilewhile

याद रखना आसान बनाने के लिए इनके Sequence बदल दिए हैं

auto registerstaticextern
char int short long
floatdoublesignedunsigned
voidconst sizeofvolatile
if elseswitch case
defaultforwhiledo
break continuereturngoto
structunionenumtypedef

C 32 Keyword के बारे में जानकारी (प्रत्येक Keyword के बारे में जानने के लिए यहाँ क्लिक करे)

  • Identifier : C में किसी भी Variable/Function या अन्य किसी भी Item का नाम को Identifier कहते हैं यानि की हम जो भी आइटम बनाते हैं उसका एक नाम रख देते हैं और नाम ऐसा होना चाहिए जो की पुरे प्रोग्राम में Unique हो ।
    • Identifier में कभी भी Punctuation Mark का उपयोग नहीं करना चाहिए जैसे ! @ # $ आदि ।
    • Identifier की शुरुआत कभी भी Digit (0-9) से नहीं करना चाहिए ।
    • Identifier Case Sensitive होते हैं इसलिए Capital A और small a को अलग अलग माना जाता हैं ।
    • Identifier के नाम में हम A से Z , a से z , 0 से 9 और साथ में Underscore (_) का उपयोग कर सकते हैं ।
  • Symbol : सभी प्रकार के Symbol जैसे + – */ % आदि ।
  • Literal : C में (“) Double Quote का String Literal और (‘) Single Quote को Character Literal कहा जाता हैं यानि की किसी भी String की शुरुआत और अंत में हमें Literal का उपयोग करना होता हैं ।
  • White Space : एक टोकन से दूसरे टोकन को समझने के लिए बिच में एक Space दी जाती हैं उसे Whitespace कहा जाता हैं ।
    • Whitespace में Space Tab New Line आदि आते हैं ।
    • यदि आपने एक टोकन से दूसरे टोकन के बिच में यदि कोई symbol का उपयोग किया हैं तो Whitespace की जरुरत नहीं होती हैं ।
    • कही-कही पर हम Whitespace का उपयोग Program को आसानी से पड़ने और समझने योग्य बनाने के लिए भी किया जाता हैं ।
  • Semicolon (;) : जब भी हम किसी भी Statement को Close करना होता हैं तो हमें ; का उपयोग करना होता हैं ।
  • Comment (/* */) : यदि हम किस भी Syntax पर कोई Comment Remember के लिए लिखना चाहते हैं तो /* से शुरू करे और */ से अंत करे इसके मध्य जो भी लिखा होता हैं उसे Compiler Ignore कर देता हैं ।

यहाँ पर Video के माध्यम से Syntax और Program Structure समझना चाहते हैं तो यह वीडियो देखे


यहाँ तक हमें Token को समझ लिया हैं अब हम एक Program के Structure से समझते है ।


C का Program Structure समझाइए

#include <stdio.h>              // preprocessor 
int a=5, b=10, c;
void main()                     // Main Function for Entry Point 
{                               // Body of Main Function
    printf("Welcome Message\n");/* Print Message */
    c = a + b;                  // Use of Operator
    printf("Value of c=%d",c);  // Print Variable
}  

इसका Output कुछ इस प्रकार होगा

Welcome Message
Value of c=15

उपरोक्त Program की हर एक लाइन एक Syntax/Statement हैं आइये हम सभी Element को एक एक कर समझते हैं ।

  • #include <> : यह एक Preprocessor हैं इसके द्वारा हम C Library को Program में ऐड करते हैं , इसे Preprocessor इसलिए कहा जाता हैं क्युकी C Compiler द्वारा program को Read करने के पहले #include द्वारा add की Library को Process कर अपनी Memory में रख लेता हैं ताकि Compiler को आपके द्वारा लिखे गए Keyword को समझा जा सके ।
  • stdio.h : यह एक Standard Input Output लाइब्रेरी हैं इसका उपयोग printf और scanf का उपयोग करने के लिए किया जाता हैं अभी हमने Message को Console पर print किया हैं इसलिए हमें इस stdio.h file का उपयोग किया हैं यहाँ पर .h का मतलब Header फाइल से हैं ।
  • void : यह एक प्रकार का डाटा टाइप हैं Void का मतलब होता हैं Null या कुछ नहीं , इस Function की कोई भी Return Value नहीं हैं इसलिए यहाँ पर void लिया गया हैं आगे हम सभी datatypes के बारे में समझेंगे ।
  • Curly Braces {} : का अंदर ही हमें प्रोग्राम लिखना होते हैं यह एक तरह से जहा पर भी लिखा जाता हैं उसका Scope बताता हैं यानि की { Start को दर्शाता हैं और } end को दर्शाता हैं । जब भी हम आगे if/loop या कोई भी Function का उपयोग करेंगे उसमे Curly Braces का उपयोग करेंग ।
  • printf(“”) : यह एक Output Function हैं इसका उपयोग Console पर Message Print करने के लिए होता हैं ।
  • Semicolon (;) : जब भी हम किसी भी Statement को Close करना होता हैं तो हमें (;) Semicolon का उपयोग करना होता हैं ।

C Program Structure को Detail मे पढ़ने के लिए यह क्लिक करे


हमारे अन्य आर्टिकल


C मे कौन कौन से Data Types हैं ?

जब भी हम कोई भी Variable का उपयोग करते हैं तो Variable Define करने के लिए data type बताना होता हैं , यहाँ पर Data Type से मतलब होता हैं की हम किस तरह के डाटा को इस Variable में स्टोर करेंगे, जैसे Number Character या अन्य । प्रत्येक Data type Store होने के लिए Memory में Byte Occupied करता हैं और अलग अलग Data Type आने Type के अनुसार कम ज्यादा Memory का उपयोग भी करते हैं । मुख्य रूप से Data Type 4 प्रकार के होते हैं ।

  • Basic Data Type : यहाँ प्राइमरी Data Type होते हैं यह कम से कम 1 Byte से लेकर ज्यादा से ज्यादा 10 Bytes तक Occupied करते हैं ।
    • Integer : इस टाइप में char, unsign char, sign char, int, unsign int, short, unsign short, long, unsign long Data Types आते हैं
    • Floating Point : इस टाइप में float, double, long double Data Types आते हैं।

  • Void Data Type : जब हमें कोई भी Data Type Define नहीं करना होता हैं तब हम वह पर void का उपयोग करते हैं इसका मतलब null होता हैं या कोई नहीं ।

  • Derivate Data Type : जब हम Primary/Basic Data Type का उपयोग कर कुछ और Data Types बनाते हैं उन्हें Derivate Data Type कहा जाता हैं ।
    • Array : जब हमें एक ही प्रकार के Data Type में एक से ज्यादा Data Variable को Store करना होता हैं तब हम Array का उपयोग करते हैं यह एक homogeneous होता हैं । यानि की एक ही प्रकार के एक से अधिक डाटा को Store करता हैं । 
    • Pointer : इस तरह के Data Type Value को Store न करते हुए उस Value के Address को Store करके रखते हैं ।
    • Structure : इस तरह के Data Type में हम अलग-अलग तरह के Data Type को Store कर सकते हैं । यह Heterogeneous Type होता हैं यानि की हम एक ही में int, char, float का उपयोग कर सकते हैं, इस की size जितने भी हमने Datatype का उपयोग किया हैं उनका Sum होती हैं ।
    • Union : यह Structure जैसा ही होता हैं इसमें जब हम अलग अलग तरह के Data Type Define करते हैं तो यह जिसकी Size ज्यादा हैं बस उतनी ही Size Occupied करता है यानि की Maximum Data Type Width ही यह Occupied करता हैं ।
  • Enum (Enumerated ) Data Type : इसमें हम एक या एक से अधिक Constant Value को Store कर सकते हैं और और उन Value को प्रोग्राम में कही पर भी उपयोग में ले सकते हैं ।

इन सभी Data Types को Video के माध्यम से देखने के लिए यहा पर क्लिक करे


C मे Operators क्या होते हैं ? | What is Opertors in C?

Operator यानि की जब हमें किसी भी प्रकार के Calculation या Comparison करना होते हैं तो हमें कुछ Symbol का उपयोग करना होता हैं यह Symbol Calculation or Comparison के लिए उपयोग में आते हैं इसलिए इन्हे Operator कहा जाता हैं ।

  • Binary Operator : जब दो Identifier के बिच में Operator लगाए जाते हैं तो उन्हें Binary Operator कहा जाता हैं ।
    • Arithmetic : (*, /, %, +, -) गुना भाग शेष जोड़ और घटाव के लिए इनका उपयोग हैं ।
    • Relational : (<, <=, >, >=, ==, != ) Compare करने के लिए इनका उपयोग होता हैं ।
    • Bitwise : (&,^,| , ~, <<, >>) AND,XOR, OR, NOT, Left Shift, Right Shift
    • Logical : (&&, ||, !) AND, OR, NOT, आदि के नाम से भी बोला जाता हैं । यह एक से अधिक Relational Condition को जोड़ने का कार्य करते हैं ।
    • Assignment : = Equal एक वेरिएबल से दूसरे वेरिएबल में वैल्यू ट्रांसफर करने के लिए ;
    • Composite : इनमे Assignment Operator के साथ Arithmetic और Bitwise Operator को Merge कर उपयोग में लिया जाता हैं
      • Arithmetic Composite : +=, -=, *=, /=, %=
      • Bitwise Composite : &=,|=, ^=, ~=, <<=, >>=

  • Unary Operator : ऐसे ऑपरेटर के एक साइड ही आइडेंटिफायर लगते हैं उन Unary ऑपरेटर कहा जाता हैं
    • As Per Type
      • ++ : इंक्रीमेंट : किसी भी वेरिएबल को एक से बढ़ाने के लिए
      • : डेक्रेमेंट : किसी भी वेरिएबल को एक से कम करने के लिए
      • & : Address of Variable
      • * : Pointer Or Value of Address
      • sizeof : किसी भी डाटा टाइप की साइज देखने के लिए
      • Bitwise ~ और Logical Not (!) को भी Unaryऑपरेटर कहा जा सकता हैं
    • As Per Position
      • Prefix : जैसा की हमने अभी Read किया की Unary Operator एक ही Side लगते हैं तो यदि उन्हें Identifier के पहले लगाया जाये तो उसे Prefix Unary Operator कहा जाता हैं ।
      • Postfix : जब Identifier के बाद में Unary Operator लगाए जाते हैं तो उन्हें Postfix Unary Operator कहा जाता हैं ।

  • Ternary Operator : जब तीन Identifier और Expression के का उपयोग किया जाता हैं तो उस operator को Ternary कहते हैं
    • ? : – (Relation Expression) ? True : False , यह एक कंडीशन ऑपरेटर भी हैं इसमें हम सबसे पहले रिलेशन ऑपरेटर का उपयोग करते हैं फिर True पर क्या होना चाहिए और False पर क्या होना चाहिए वह सेट करते हैं

प्रत्येक Operator के बारे में Example सहित जानने के लिए यहाँ पर क्लिक करे


CC मे Conditional Statement क्या होते हैं?

Conditional Statement के बारे मे Detail मे समझने के लिए यहा पर क्लिक करे

  • if – किसी भी प्रकार की Condition के लिए इस statement का उपयोग किया जाता हैं , यह एक conditional statement हैं ।
if (condition) {
   //statements
 }
  • ifelse – जब भी हम IF कंडीशन का उपयोग करते हैं तब यदि िफ़ कंडीशन जब फालसे होती हैं तब ेल्स कंडीशन में कर्सर जाता हैं .
if (condition1) { 
// statements
} 
else {
// statements
} 

if (condition1) { 
// statements
} 
else if (condition2) { 
// statements
} 
else { 
// statements
}
  • switch…case – switch case स्टेटमेंट एक तरह से Conditional स्टेटमेंट ही हैं , हम कह सकते हैं की if का extended version हैं , इसमें हमें बार बार condition नहीं लिखना होती । इसमें int और char टाइप का ही उपयोग कर सकते हैं ।
switch (var) {
   case label1:
     // statements
     break;
   case label2:
     // statements
     break;
   default:
     // statements
     break;
 }

  • ( ? : ) – इसे कंडीशनल ऑपरेटर भी कहा जाता हैं , जब हमें कोई सिंपल कंडीशन से वैल्यू एक वेरिएबल में कोई Condition लगा कर Stote करना हो तब हम इस Operator का उपयोग करते हैं .
#include <stdio.h>
void main()
{
    int a = 5, b;
    b = (a>0) ? 1 : 0;
    printf("value of b = %d", b);
}

C मे Loop Statement क्या होते हैं ?

  • For : यहाँ लूप समझने में सबसे आसान हैं और जब हमें किसी भी ऐरे में से वैल्यू को उपयोग में लेना हो तब इस लूप का उपयोग करते हैं , इस लूप में वेरिएबल में वैल्यू को initialization , condition checking और increment तीनो ही पहले ही लिखना होती हैं जिससे Infinite Loop चलने के Chance बहुत कम हो जाते हैं .
for (initialization; condition; increment) {
   // statement(s);
 }
  • while : इस लूप में हमें केवल कंडीशन ही देना होती है जब तक कंडीशन ट्रू होती हैं लूप चलता जाता हैं और कंडीशन के False होते ही लूप से Exit हो जाते हैं .यह एंट्री कण्ट्रोल लूप की श्रेणी में आता हैं क्युकी लूप में एंटर होने से पहले कंडीशन चेक की जाती हैं
while (condition) {
   // statement(s)
 }
  • do….while : यह एग्जिट कण्ट्रोल लूप की श्रेणी में आता हैं क्युकी लूप में कंडीशन एक बार Execute होने के बाद बाहर आते समय Condition चेक की जाती हैं . इस तरह के लूप कम से कम एक बार तो Execute होते ही हैं .
do {
   // statement block
 } while (condition);

Loop Statement के बारे मे Detail मे Read करने के लिए Click करे ।


C मे Flow Transfer Statement (Jump) क्या होते हैं ?

  • break :
    • जब भी हमें for, while और Do….while में से Exit होना होता हैं तब हम break कमांड का उपयोग करते हैं
    • switch case statement से भी बहार आने के लिए भी break का उपयोग किया जाता हैं ।
  • continue : किसी भी loop statement के current cycle को bypass करने के लिए continue statement का उपयोग किया जाता हैं ।
  • return : return statement को दो तरीके से उपयोग कर सकते हैं .
    • return : इसमें हम केवल statement लिखते हैं ऐसा करने से जो भी फंक्शन या स्टेटमेंट हैं वह वही पर क्लोज हो जाता हैं ।
    • return value : इसमें हम return के साथ वैल्यू भी return कर सकते हैं
  • goto : यह statement program के flow को transfer करने के काम आता हैं , वैसे यदि आप एक best practice करना चाहते हैं तो इस Statement का उपयोग नहीं करना चाहिए हैं , यदि बहुत जरुरी हो तो ही इसका उपयोग करे ।

Transfer Statement (Jump) के बारे मे Detail मे Read करने के लिए Click करे ।


Learn C Screen Input & Output

  • getchar() : User से एक Character को Input लेने के लिए ।
  • putchar() : Screen पर एक Character को Print करने के लिए ।
  • gets() : एक से अधिक character को Input लेने के लिए यह जब तक accept करता हैं जब तक की New Liner Character यानि की Enter press न कर दिया जाये ।
  • puts() : एक से अधिक Character यानि की String को प्रिंट करने के लिए ।

  • scanf() : यूजर से एक या एक से अधिक वैल्यू Read करने के लिए इसमें जिस टाइप की वैल्यू Read करना हैं उसका format देना होता हैं ।
    • %c: char के लिए
    • %d : int के लिए
    • %f : float के लिए
    • %s : String के लिए
  • printf() : Screen पर Value print करने के लिए साथ में Format Set करने का ऑप्शन भी होता हैं ।
    • %c: char के लिए
    • %d : int के लिए
    • %f : float के लिए
    • %s : String के लिए

Learn C File Input output

  • *fopen : File open करने के लिए यहाँ पर हमें Mode बताना होते हैं जो की इस प्रकार हैं ।
    • r : Read Mode – यानि की फाइल को केवल Read कर सकेंगे
    • w : Write Mode – File Write mode में ओपन होगी, यदि फाइल पहले से नहीं बनी हैं तो नयी File Create हो जाएगी ।
    • a : Append Mode – File Write mode में open होगी और Write के लिए Cursor सबसे निचे रहेगा ताकि आप Write कर सके ।
    • r+ : Read Write Both – File से आप Data Read भी कर सकते हैं और साथ में Write भी कर सकते हैं ।
    • w+ : Read Write Both But Truncate First : File Read Write Mode में Open होगी और यानि Read कर सकते हैं और यदि File पहले से बनी हैं तो उसका Data Truncate हो जाएगा ।
    • a+ : Read Write Both With Append Mode : इसमें जब Read करते हैं तो Cursor First में होता हैं और जब Write करते हैं तो Cursor Last में होता हैं ताकि हम Append कर सके ।
  • fclose : File को Close करने के लिए ।
  • fputc : File में एक एक Character Write करने के लिए ।
  • fputs : File में एक साथ String Write करने के लिए ।
  • fgetc : File से एक एक Character Read करने के लिए ।
  • fgets : फाइल में एक साथ String Read की जा सकती हैं ।
  • fscanf : यह भी File का Data एक साथ Read करने के लिए होता हैं लेकिन इसमें Space मिलते हैं Reading Stop हो जाती हैं ।

Learn C Binary (I/O) Input/Output Functions

  • fread : Read Binary Data From File and Store on Structure or Array : यह Binary के Form में Data को Read करता हैं और उसकी Value को हम Structure या Array में ले सकते हैं ।
  • fwrite : यह Binary के Form में Data Write करता हैं हम Structure और Array की Value Write कर सकते हैं ।


C मे Preprocessors क्या होते हैं ?

किसी भी Program के Compile होने के Just पहले यदि हम कोई Instruction Processor दो देना चाहते हैं तो उन्हें Preprocessor Directives कहा जाता हैं । यह # Symbol से Start होते हैं । इन्हे Program के शुरू में ही लिखना होता हैं ताकि Complier इनसे Instruction ले सके । इन्हे हम Macro भी कह सकते हैं ।

Directives

Include Related

  • #include : इस Directive का उपयोग हम कोई भी Header File को हमारे Program में Add करने के लिए करते हैं ।

Define Related

  • #define : जब भी हमें कोई Constant Define करना हो तब हम इसका उपयोग करते हैं ।
  • #undef : पहले से Define किये Constant को Undef करने के लिए ।
  • #ifdef : यदि कोई Constant पहले से Define हैं तो हम इस से check कर सकते हैं यदि Define होगा तो True return करेगा और Otherwise False Return करेगा ।
  • #ifndef : यदि कोई Constant पहले से Define नहीं हैं तो यह True Return करेगा ।

Conditional

  • #if : Compile के समय पर कंडीशन चेक करने के लिए ।
  • #else : Compile Time पर If की Not Position को Check करने के लिए जैसा की हमने if और else का उपयोग समझा था ।
  • #elif : यह Else if जैसा कार्य करता हैं ।
  • #endif : यहाँ पर हमारे पास if Condition को क्लोज करने के लिए Curly Braces नहीं होते हैं if को close करने के लिए हम इसका उपयोग करते हैं ।

Other

  • #error : stderr File का उपयोग कर Error Print करने के लिए ।
  • #pragma : Compiler को Special Command देने के लिए ।

Predefined Macros

  • __DATE__ : Current Date देखने के लिए ।
  • __TIME__ : Current Time देखने के लिए ।
  • __FILE__ : Current फाइल का नाम देखने के लिए ।
  • __LINE__ : Current Line Number देखने के लिए ।
  • __STDC__ : जब Complier ANSI Standard से Compile करता हैं तो इसमें 1 Value होती हैं ।

Learn C Typedef : Give a New name to any Data Type

इस Keyword के द्वारा आप किसी भी Data Type को एक नया नाम दे सकते हैं , चाहे वह Primary /Basic Data Type हो या Structure हो

यदि हमें कोई एक नया टाइप बनना हो int का तो हम Typedef से बना सकते हैं , इसका उपयोग अधिकतर Structure में किया जाता हैं ।

#include <stdio.h>
typedef unsigned int rollno;
void main()
{
    rollno a, b ;
    a = 10;
    b = 20;
    printf("Value of A:%d\n",a);
    printf("Value of B:%d\n",b);
}

C मे Type Casting क्या होती हैं ? What is Type Casting in C?

जब हमें एक Data Type से दूसरे Data Type में Change करना होता हैं तो उसे Type Casting कहा जाता हैं , यानि की हमारे पास कोई Int हैं और हम उसे Char करना चाहते हैं तो हम Type Casting का उपयोग करेंगे ।

Type Casting के लिए हमें = के बाद Round Braces में जिस भी नए Data Type में Cast करना हैं उसे लिखते हैं

b = (New Data Type) Expression

जैसे हमें Int से Char में Cast करना हैं इसलिए हम इस तरह से लिखेंगे

int a =5;
char b; 
b = (char) a;

C मे Error Handling क्या होती हैं ? What is Error Handling in c?

जब भी हम Program बनाते हैं तो Syntax की error तो हमें Compile करने के पहले ही हटानी होती हैं , लेकिन कुछ Error Run करने के बाद Situation के अनुसार ही आती हैं इस तरह की Error आने पर Program एकदम से बंद हो उसे Protect करने के लिए हमें Error पता लगा कर उसका Proper message user को देना होता हैं , इस कार्य को Error Handling कहा जाता हैं ।

Error Handling के लिए हमें errno.h फाइल को Include करना होती हैं , इस फाइल में यह दो फंक्शन होते हैं हम इनका उपयोग कर सकते हैं ।

  • strerror() : जब हमें जो Error आ रही हैं वही Print करना होती हैं तब इस फंक्शन का उपयोग करते हैं ।
  • perror() : जब हमें Actual Error को प्रिंट न करते हुए हमारे अनुसार कोई Message देना हो तब हम इस Function का उपयोग करते है ।

Divide by zero errors

यह एक Common प्रॉब्लम हैं , जब भी हम किसी भी संख्या को 0 से भाग लगा देते हैं यानि की 5/0 तो यहाँ पर एक Runtime Error आती हैं , और Error आने के बाद हम Program से Exit हो जाते हैं , इस unwanted Exit से Program को Protect करने के लिए हमें जिस संख्या से भाग दे रहे हैं उसे पहले ही चेक करना होती हैं की यदि यह 0 हो तो Dived किया ही नहीं जाये ।

#include <stdio.h>
int a = 5, b = 0, c=0;
void main()
{
   if (b!=0)
   {
     c = a / b ;
   }

}

C मे Recursion क्या होता हैं ? | What is Recursion in C?

यह ऐसे function होते हैं जो खुद में से ही खुद को Call कर लेते हैं एक तरह से यह loop जैसा कार्य करते हैं । इन function के उपयोग से हम बहुत ही छोटे Code में Program बना सकते हैं, जहा पर हमें एक जैसे कार्य को Repetitively Operate करना होता हैं तब हम Recursion का उपयोग करते हैं, Factorial और Fibonacci Series के उदहारण से इसे बहुत ही अच्छे से समझा जा सकता हैं ।

  • Number Factorial : Factorial यानि की जैसे हमें 5 का factorial निकलना हैं तो हम कुछ इस प्रकार से लिखते हैं

5! इसका मतलब होता हैं की हमें 5x4x3x2x1 करना हैं यानि की जब तक एक न आ जाये तब तक दी हुए संख्या में से एक कम कर उसमे muliply करते जाना हैं, वैसे यह लूप से भी बना सकते थे परन्तु यहाँ पर इस तरह के प्रोग्राम को Recursion से भी बना सकते हैं ।

हम 5! को कुछ इस तरह भी लिखते हैं 5! = 5 x 4! और 4!= 4 x 3! यहाँ पर एक पैटर्न बन रहा हैं और इसे हम Recursion से Solve कर सकते हैं

  • Fibonacci Series : इस Series में हमें Current नंबर में उसके पहले वाले नंबर को add करना होता हैं इस तरह

0, 1, 1, 2, 3, 5, 8, 13, 21, ……

इस Series में आप देखंगे की पहले दो संख्या को जोड़ कर तीसरे नंबर पर लिखा हैं , फिर दूसरी और तीसरी को जोड़ कर चौथी पर लिखा हैं और उसकी प्रकार से यह क्रम चलता ही जा रहा है । इसे भी आप Recursion से Solve कर सकते हो ।


Learn C Command Line Arguments

C में हमारा main() function ही Program Execution Point होता हैं जब हम Program को compile करते हैं तो इसके Exe ( यानि की Executable ) फाइल बन जाती हैं और उसे हम Command Line ya अन्य तरीके से call कर सकते हैं, जिस तरह हम किसी भी function में Parameter Pass करते हैं वैसे ही जब हम किसी Program को Command Line से Call करते हैं तो वह से parameter pass करने के लिए हमें Command Line Argument का उपयोग करते हैं ।

यहाँ पर दो वेरिएबल का उपयोग किया जाता हैं ।

  • argc : Argument Count – जितने भी Argument Command लाइन द्वारा दिए जा रहे हैं उनको Count करने के लिए argc का उपयोग किया जाता हैं ।
  • *argv : Argument Value – जो वैल्यू Pass की जाती हैं वह Array के form में हमारे पास इस Variable से आती हैं हम इसे यहाँ से आसानी से Get कर सकते हैं ।

Learn C Memory Management

  • *malloc : Memory Allocate – यह memory में Dynamic Allocation के लिए उपयोग में आता हैं ।
    • यह एक समय में एक ही Block Allocate करता हैं
    • Default Value Garbage होती हैं इसलिए इसमें Value Initialize करना होती हैं ।
  • *calloc : Contiguous Memory Allocate – यह भी malloc की तरह ही Dynamic Allocation करता हैं
    • यह एक समय एक से अधिक Block Allocate कर सकता है ।
  • free : Release Memory – जो भी Memory हमें Dynamic Allocate की हैं उन्हें Free करने के लिए इसका उपयोग किया जाता हैं ।
  • *realloc : Re-Allocate – यदि पहले से Allocate की गई Memory के Size में कुछ Change करना हो तो हम इसका उपयोग करते हैं


इस आर्टिकल में लगभग सभी Topic को Cover किया गया हैं आशा हैं मुझे की आपको समझ में आया होगा , यदि फिर भी कही पर कोई Doubt हो तो आप Comment कर सकते हैं , Article कैसा लगा जरूर बताये , यदि आप अपने अनुभव Share करना चाहते हैं तो भी Comment के माध्यम से कर सकते हैं ।

अपना कीमती समय देने के लिए धन्यवाद ।

Add a Comment

Your email address will not be published. Required fields are marked *