Wednesday, July 16, 2025

C introduction in hindi

C भाषा का इतिहास 

Algol से Traditional C तक


1. Algol (Algorithmic Language)

·        वर्ष: 1950 के दशक

·        क्या है: Algol एक शुरुआती उच्च स्तरीय प्रोग्रामिंग भाषा थी। इसका उपयोग गणितीय और वैज्ञानिक गणनाओं के लिए किया जाता था।

·        महत्व: Algol ने प्रोग्रामिंग भाषाओं की संरचना (structure) और सिंटैक्स (syntax) की नींव रखी।


2. BCPL (Basic Combined Programming Language)

·        वर्ष: 1966

·        डेवलपर: मार्टिन रिचर्ड्स (Martin Richards)

·        क्या है: BCPL एक सरल और शक्तिशाली भाषा थी, जिसे सिस्टम प्रोग्रामिंग के लिए बनाया गया। यह C भाषा के विकास के लिए एक आधार बनी।


3. B Language

·        वर्ष: 1969

·        डेवलपर: केन थॉम्पसन (Ken Thompson)

·        क्या है: B भाषा BCPL से प्रेरित थी। इसे UNIX ऑपरेटिंग सिस्टम के लिए बनाया गया। B भाषा में भी सिस्टम प्रोग्रामिंग के लिए सुविधाएँ थीं, लेकिन यह सीमित थी।


4. C Language

·        वर्ष: 1972

·        डेवलपर: डेनिस रिची (Dennis Ritchie)

·        क्या है:

o   C भाषा को बेल लैब्स (Bell Labs) में विकसित किया गया।

o   इसका उद्देश्य UNIX ऑपरेटिंग सिस्टम के लिए एक शक्तिशाली और लो लेवल भाषा बनाना था।

o   यह B भाषा से विकसित हुई और इसमें नए फीचर्स जैसे डेटा टाइप, फंक्शन आदि जोड़े गए।

o   C भाषा ने प्रोग्रामिंग को ज्यादा सरल, प्रभावी और पोर्टेबल बनाया।


5. Traditional C

·        वर्ष: 1978

·        महत्वपूर्ण किताब: The C Programming Language (डेनिस रिची और ब्रायन कर्निहन द्वारा)

·        क्या है:

o   इस किताब में C भाषा की पूरी व्याख्या की गई। इसे "कर्निहन और रिची" की किताब कहा जाता है।

o   इस संस्करण को 'Traditional C' या 'K&R C' भी कहा जाता है।

o   इसमें C भाषा का पहला स्थिर और व्यापक मानक तैयार किया गया।


C भाषा के विकास में मुख्य योगदानकर्ता

नाम

योगदान

डेनिस रिची (Dennis Ritchie)

C भाषा के आविष्कारक। UNIX OS के विकास में मुख्य भूमिका।

केन थॉम्पसन (Ken Thompson)

B भाषा के निर्माता। UNIX OS के सह-निर्माता।

मार्टिन रिचर्ड्स (Martin Richards)

BCPL भाषा के डेवलपर, जिसने C के विकास को प्रभावित किया।

·  Algolआधारभूत भाषा जो आधुनिक भाषाओं को प्रभावित किया।

·  BCPLसरल प्रणाली भाषा।

·  B भाषा → BCPL की संशोधित रूप, UNIX के लिए।

·  C भाषाडेनिस रिची द्वारा विकसित, शक्तिशाली, पोर्टेबल सिस्टम प्रोग्रामिंग भाषा।

·  Traditional Cपहली स्थिर मानक भाषा।

 

C भाषा का इतिहास (History of C Language)

  • डेनिस मैकएलिस्टर रिची (Dennis MacAlistair Ritchie)
    (9 सितंबर 1941 – लगभग 12 अक्टूबर 2011)

    डेनिस रिची एक प्रसिद्ध अमेरिकी कंप्यूटर वैज्ञानिक थे। उन्होंने अपने साथी केन थॉम्पसन (Ken Thompson) के साथ मिलकर C प्रोग्रामिंग भाषा, B भाषा, और Unix ऑपरेटिंग सिस्टम का निर्माण किया।

     

     
    C भाषा की रचना Dennis Ritchie ने 1972 में Bell Labs (USA) में की थी।


 

 

 

 

 

 

 


  • इसे Unix Operating System के विकास के लिए बनाया गया था।
  • यह भाषा B भाषा से विकसित हुई थी, जो एक पुरानी प्रोग्रामिंग भाषा थी।
  • C भाषा की लोकप्रियता तेजी से बढ़ी और यह आज भी कई सिस्टम और एप्लिकेशन बनाने में प्रयोग होती है।

C भाषा के लाभ (Advantages of C Language)

  1. तेज़ और कुशल (Fast and Efficient):
    C
    भाषा बहुत तेज़ और कम संसाधनों का उपयोग करती है।
  2. सिस्टम प्रोग्रामिंग के लिए उत्तम (Best for System Programming):
    ऑपरेटिंग सिस्टम, ड्राइवर आदि बनाने के लिए उपयुक्त।
  3. स्ट्रक्चर्ड प्रोग्रामिंग (Structured Programming):
    यह कोड को फंक्शन्स में बाँटकर प्रोग्रामिंग को आसान बनाती है।
  4. लर्निंग की मजबूत नींव (Strong Foundation for Other Languages):
    C
    सीखने से C++, Java, Python जैसी भाषाएँ सीखना आसान हो जाता है।
  5. हार्डवेयर के नजदीक (Close to Hardware):
    इससे मेमोरी और हार्डवेयर को सीधे कंट्रोल करना आसान होता है।

C भाषा की सीमाएँ (Disadvantages of C Language)

  1. ऑब्जेक्ट ओरिएंटेड नहीं (Not Object-Oriented):
    इसमें Class और Object की सुविधा नहीं होती।
  2. सेफ़्टी कम (Less Secure):
    इसमें मेमोरी को मैन्युअली मैनेज करना पड़ता है, जिससे गलतियाँ हो सकती हैं।
  3. इनबिल्ट GUI सपोर्ट नहीं (No Built-in Graphics):
    C
    भाषा में ग्राफिक्स या यूजर इंटरफेस के लिए अतिरिक्त लाइब्रेरी की जरूरत होती है।
  4. एरर हेंडलिंग कठिन (Error Handling is Difficult):
    अन्य भाषाओं की तुलना में त्रुटियों को पहचानना और संभालना मुश्किल होता है।

 

प्रोसीजर ओरिएंटेड प्रोग्रामिंग (Procedure Oriented Programming - POP)

प्रोसीजर ओरिएंटेड प्रोग्रामिंग में प्रोग्राम को छोटे-छोटे फंक्शन या प्रक्रियाओं (Procedures) में बाँटा जाता है। यह डेटा से ज़्यादा प्रोसेस (Process) या लॉजिक पर ध्यान देती है।

विशेषताएँ:

·        डेटा और फंक्शन अलग-अलग रहते हैं।

·        कोड को दोबारा इस्तेमाल करना मुश्किल होता है।

·        प्रोग्रामिंग की पारंपरिक विधि है।

·        उदाहरण: C भाषा, Pascal, FORTRAN आदि।


ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (Object Oriented Programming - OOP)

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में प्रोग्राम को ऑब्जेक्ट्स (वस्तुओं) के रूप में बनाया जाता है। यह डेटा और उस पर काम करने वाले फंक्शन्स को एक साथ क्लास में संगठित करता है।

विशेषताएँ:

·        डेटा और फंक्शन को एक साथ ऑब्जेक्ट में बाँधता है।

·        कोड को दोबारा इस्तेमाल (Reusability) और विस्तार करना आसान होता है।

·        सिक्योरिटी (Encapsulation) और इनहेरिटेंस जैसी आधुनिक सुविधाएँ मिलती हैं।

·        उदाहरण: C++, Java, Python, C# आदि।


 OOP और POP में अंतर (Difference between POP and OOP)

विशेषता

प्रोसीजर ओरिएंटेड प्रोग्रामिंग (POP)

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग (OOP)

1. आधार

प्रक्रिया (Process) पर आधारित

ऑब्जेक्ट (Object) पर आधारित

2. डेटा सुरक्षा

डेटा असुरक्षित रहता है

डेटा सुरक्षित रहता है (Encapsulation)

3. संरचना

फंक्शन और डेटा अलग रहते हैं

फंक्शन और डेटा एक साथ ऑब्जेक्ट में

4. पुनः प्रयोग

कोड को दोबारा उपयोग करना कठिन

कोड को दोबारा उपयोग करना आसान

5. उदाहरण

C, Pascal, FORTRAN

C++, Java, Python

6. जटिलता

बड़े प्रोग्राम में प्रबंधन कठिन

बड़े प्रोग्राम में प्रबंधन आसान

7. विकास

पारंपरिक प्रणाली

आधुनिक प्रणाली

 

1. Character Set (अक्षर समूह)

C भाषा में प्रोग्राम लिखने के लिए जो वर्ण (characters) उपयोग किए जाते हैं, उन्हें मिलाकर Character Set कहा जाता है। ये निम्नलिखित प्रकार के होते हैं:

 (i) Letters (अक्षर):

·        छोटे (Small Letters): a to z

·        बड़े (Capital Letters): A to Z

(ii) Digits (अंक):

·        0 to 9

 (iii) Special Characters (विशेष चिन्ह):

Special Character

Name in English

नाम हिंदी में

!

Exclamation mark

विस्मयादिबोधक चिन्ह

@

At symbol

ऐट चिन्ह

#

Hash / Number sign

हैश / संख्या चिन्ह

$

Dollar sign

डॉलर चिन्ह

%

Percent sign

प्रतिशत चिन्ह

^

Caret

कैरेट (घात के लिए प्रयोग)

&

Ampersand

एंड / संयोजन चिन्ह

*

Asterisk

तारक चिन्ह / गुणा चिन्ह

(

Left parenthesis

बाँया कोष्ठक (ब्रैकेट)

)

Right parenthesis

दायाँ कोष्ठक (ब्रैकेट)

-

Hyphen / Minus

ऋण चिन्ह / माइनस

_

Underscore

अधोरेखा

=

Equal sign

समानता चिन्ह (=)

+

Plus sign

जोड़ चिन्ह / प्लस

{

Left curly brace

बाँया घुंघराला ब्रैकेट

}

Right curly brace

दायाँ घुंघराला ब्रैकेट

[

Left square bracket

बाँया वर्ग कोष्ठक

]

Right square bracket

दायाँ वर्ग कोष्ठक

:

Colon

कोलन (:)

;

Semicolon

अर्धविराम

"

Double quote

डबल कोट्स

'

Single quote

सिंगल कोट्स

< 

Less than

से कम (<)

> 

Greater than

से अधिक (>)

,

Comma

अल्पविराम (, )

.

Period / Dot

पूर्णविराम / बिंदु

?

Question mark

प्रश्नवाचक चिन्ह

/

Forward slash

स्लैश / भाग चिन्ह

\

Backslash

बैकस्लैश

`

`

Vertical bar / Pipe

~

Tilde

टिल्ड (~)

 (iv) White Spaces (रिक्त स्थान):

·        Space (खाली जगह)

·        Tab

·        New Line (Enter)

Keywords (कीवर्ड्स)

 परिभाषा:

Keywords वे आरक्षित शब्द (Reserved Words) होते हैं जिनका विशेष अर्थ होता है

C भाषा के प्रमुख 32 Keywords:

auto        break       case       char 

const       continue    default    do 

double      else        enum       extern 

float       for         goto       if 

int         long        register   return 

short       signed      sizeof     static 

struct      switch      typedef    union 

unsigned    void        volatile   while 

 

 

Identifier

C भाषा में Identifier उस नाम को कहते हैं जो Variable, Function, Array, Structure आदि को पहचानने के लिए दिया जाता है।

dentifier लिखने के नियम (Rules for Writing Identifiers in C)

क्रम

नियम (Rule)

विवरण (Explanation)

1

केवल अक्षर (A-Z, a-z), अंक (0-9) और अंडरस्कोर _ का प्रयोग हो सकता है।

लेकिन नाम की शुरुआत कभी अंक (digit) से नहीं हो सकती।

2

Identifier की शुरुआत अक्षर या _ से होनी चाहिए।

उदाहरण: _count, name1 सही है; लेकिन 1name गलत है।

3

C के कीवर्ड्स (Keywords) को Identifier के रूप में प्रयोग नहीं कर सकते।

जैसे: int, return, while को नाम नहीं बना सकते।

4

C भाषा में Identifiers case sensitive होते हैं।

Marks और marks दोनों अलग-अलग माने जाएंगे।

5

Identifier का नाम अर्थपूर्ण (meaningful) और स्पष्ट होना चाहिए।

जैसे totalMarks बेहतर है बजाय tm के।

6

Identifier की अधिकतम लंबाई C Compiler पर निर्भर करती है।

सामान्यतः पहले 31 characters माने जाते हैं।

 

DATA TYPES:-

1 प्राथमिक (मूल) डेटा टाइप्स – Primary (Fundamental) Data Types32-बिट सिस्टम के लिए)

डेटा टाइप

वैल्यू रेंज

char

-128 से 127

unsigned char

0 से 255

int

-2,14,74,83,648 से 2,14,74,83,647

unsigned int

0 से 4,29,49,67,295

short int

-32,768 से 32,767

long int

लगभग -2 अरब से +2 अरब

float

लगभग 6 दशमलव अंकों की शुद्धता

double

लगभग 15 दशमलव अंकों की शुद्धता

 

महत्वपूर्ण बातें (Key Notes)

  1. char टाइप असल में एक integer टाइप होता है जो अक्षरों के ASCII मान को स्टोर करता है।
  2. short, int, long, long long टाइप integer वैल्यू के लिए होते हैंबस उनका रेंज अलग होता है।
  3. unsigned टाइप में कोई नकारात्मक (negative) मान नहीं होता।
  4. float, double, और long double का उपयोग दशमलव (decimal) संख्या स्टोर करने के लिए किया जाता है।

2– User-defined Data Types

Ø  struct (संरचना)

Ø  union (यूनियन)

Ø  enum (एन्यूम)

Ø  typedef (टाइपडिफनए नाम बनाने के लिए)

2– Derived Data Types

ये मूल डेटा टाइप्स से बनाए जाते हैं:

·        Array (सरणी): एक ही प्रकार के डेटा का समूहint arr[5];

·        Pointer (संकेतक): किसी वैरिएबल का एड्रेस स्टोर करता हैint *ptr;

·        Function (कार्य): जो वैल्यू वापस करते हैंint sum(int a, int b);

·        Structure/Union: उपयोगकर्ता द्वारा परिभाषित प्रकार

Operator

Operator एक चिन्ह (symbol) होता है, जो किसी वैरिएबल (variable) या मान (value) पर कोई क्रिया (क्रिया जैसे जोड़ना, घटाना आदि) करता है।

उदाहरण:

int a = 5 + 3;

यहाँ + एक operator है, जो 5 और 3 को जोड़ रहा है।


C भाषा में मुख्य प्रकार के ऑपरेटर्स:


1Arithmetic Operators (गणितीय ऑपरेटर)

Operator

अर्थ (काम)

उदाहरण (a=10, b=5)

Output

+

जोड़

a + b

15

-

घटाना

a - b

5

*

गुणा

a * b

50

/

भाग

a / b

2

%

शेषफल (modulus)

a % b

0


2 Relational Operators (तुलनात्मक ऑपरेटर)

ये ऑपरेटर दो मानों की तुलना करते हैं और सच (1) या झूठ (0) लौटाते हैं।

Operator

अर्थ

उदाहरण (a=10, b=5)

Output

==

बराबर है क्या?

a == b

0

!=

बराबर नहीं है क्या?

a != b

1

> 

बड़ा है क्या?

a > b

1

< 

छोटा है क्या?

a < b

0

>=

बड़ा या बराबर?

a >= b

1

<=

छोटा या बराबर?

a <= b

0


3 Logical Operators (तार्किक ऑपरेटर)

ये ऑपरेटर शर्तों को जोड़ने या जांचने के लिए होते हैं।

Operator

नाम

अर्थ

&&

AND

दोनों शर्तें सही हों तभी सही (true)

`

`

!

NOT

सही को गलत और गलत को सही करता है

उदाहरण:

 (a > 5 && b < 10)  // true (1)

4 Assignment Operators (सौंपने वाले ऑपरेटर)

Operator

अर्थ

उदाहरण

=

मान सौंपना

a = 5

+=

जोड़कर सौंपना

a += 3 a = a + 3

-=

घटाकर सौंपना

a -= 2 a = a - 2

*=

गुणा करके सौंपना

a *= 4

/=

भाग देकर सौंपना

a /= 2


5 Increment & Decrement Operators (बढ़ाना/घटाना)

Operator

अर्थ

उदाहरण

++

1 से बढ़ाना

a++ या ++a

--

1 से घटाना

a-- या --a


6 Bitwise Operators :- बिटवाइज़ ऑपरेटर (Bitwise Operators) C भाषा में ऐसे ऑपरेटर होते हैं जो बाइनरी (binary) बिट्स पर ऑपरेशन करते हैं। यानी ये ऑपरेटर एक-एक बिट पर कार्य करते हैं, कि पूरे नंबर पर एक साथ।


1. & (Bitwise AND)

यह ऑपरेटर दोनों ऑपरेड के बिट्स की तुलना करता है और तभी 1 देता है जब दोनों बिट्स 1 हों।

उदाहरण:

int a = 5;   // 0101

int b = 3;   // 0011

int c = a & b;  // 0001 -> 1

 2. | (Bitwise OR)

यह ऑपरेटर किसी भी बिट के 1 होने पर 1 देता है।

उदाहरण:

int a = 5;   // 0101

int b = 3;   // 0011

int c = a | b;  // 0111 -> 7

 3. ^ (Bitwise XOR)

जब दो बिट्स अलग-अलग हों (एक 0 और एक 1), तब 1 देता है।

उदाहरण:

int a = 5;   // 0101

int b = 3;   // 0011

int c = a ^ b;  // 0110 -> 6

4. ~ (Bitwise NOT)

यह एक यूनरी ऑपरेटर है जो बिट्स को उलट देता है (0 को 1 और 1 को 0 में बदल देता है)
नोट: इसका आउटपुट signed integers में negative रूप में आता है।

उदाहरण:

int a = 5;    // 0101

int c = ~a;   // 1010 (in binary, actual output is -6 in 2's complement)

 5. << (Left Shift)

यह सभी बिट्स को बाईं ओर शिफ्ट करता है और दाईं ओर 0 भर देता है।

उदाहरण:

int a = 5;   // 0101

int c = a << 1;  // 1010 -> 10

 6. >> (Right Shift)

यह सभी बिट्स को दाईं ओर शिफ्ट करता है। बाईं ओर साइन बिट भरता है।

उदाहरण:

int a = 5;   // 0101

int c = a >> 1;  // 0010 -> 2

 

Conditional Operator :-

C भाषा में Conditional Operator को Ternary Operator भी कहा जाता है क्योंकि यह तीन ऑपरेन्ड्स के साथ काम करता है। यह एक शॉर्टकट तरीका है if-else का उपयोग करने का।


 सिंटैक्स (Syntax):

condition ? expression_if_true : expression_if_false;

  • conditionयह कोई वैध तर्क (logical) या तुलना (comparison) हो सकता है।
  • यदि condition सही (true) है, तो expression_if_true का मान लिया जाएगा।
  • यदि condition गलत (false) है, तो expression_if_false का मान लिया जाएगा।

 उदाहरण:

#include <stdio.h>

 

int main() {

    int a = 10, b = 20;

    int max;

 

    max = (a > b) ? a : b;

 

    printf("सबसे बड़ा मान है: %d\n", max);

    return 0;

}

 

Sizeof:-

 sizeof एक unary compile-time operator है जो किसी data type या variable के memory size (bytes) को बताता है।

 सिंटैक्स (Syntax):

sizeof(type)

या

sizeof(variable)

यह कंपाइलर को बताता है कि दिए गए टाइप या वैरिएबल का साइज़ (memory में) कितना है।


🔹 उदाहरण (Examples):

#include <stdio.h>

 

int main() {

    int a;

    float b;

    char c;

    double d;

 

    printf("int का साइज़: %lu bytes\n", sizeof(a));

    printf("float का साइज़: %lu bytes\n", sizeof(b));

    printf("char का साइज़: %lu bytes\n", sizeof(c));

    printf("double का साइज़: %lu bytes\n", sizeof(d));

 

    return 0;

}

Note: %lu का उपयोग unsigned long के लिए किया जाता है क्योंकि sizeof का रिटर्न टाइप

size_t होता है, जो एक unsigned integer टाइप है।

 

Statement

परिभाषा (Definition):

Statement वह निर्देश (instruction) होता है जिसे कंपाइलर अनुपालन (execute) करता है।
C
प्रोग्राम कई स्टेटमेंट्स से मिलकर बनता है, और हर स्टेटमेंट एक निश्चित कार्य करता है।

प्रत्येक C स्टेटमेंट semicolon (;) से समाप्त होता है।


🔹 C में स्टेटमेंट्स के प्रकार (Types of Statements in C):

1.    Expression Statement

o   यह किसी expression को execute करता है।

o    Example:

a = b + 5;

i++;

2.    Declaration Statement

o   यह वैरिएबल या फंक्शन को डिक्लेयर करता है।

o    Example:

int x;

float pi;

3.    Compound Statement (Block)

o   Multiple statements को {} के अंदर एक साथ रखा जाता है।

o Example:

{

    int a = 10;

    a = a + 5;

    printf("%d", a);

}

4.    Control Flow Statements

o   ये स्टेटमेंट्स प्रोग्राम के फ्लो को control करते हैं।

o   इसके उप-प्रकार:

§  Selection statementsif, if-else, switch

§  Looping statementsfor, while, do-while

§  Jump statementsbreak, continue, goto, return

5.    Null Statement

o   केवल एक (;) होता है, कोई कार्य नहीं करता।

o   Example:

;


उदाहरण (Simple Example):

#include <stdio.h>

 

int main() {

    int a = 10;              // Declaration + Expression Statement

    if (a > 5) {             // Selection Statement

        printf("a is big");  // Expression Statement

    }

    return 0;                // Jump Statement

}


 

 

 

 


No comments:

Post a Comment

C भाषा में स्टेटमेंट्स

  C भाषा में स्टेटमेंट्स (Statements) के प्रकार C प्रोग्रामिंग में स्टेटमेंट्स को उनके काम के आधार पर अलग-अलग श्रेणियों में बाँटा जाता है। ...