दोस्तों इस पोस्ट में हम सी प्रोग्रामिंग लैंग्वेज को संक्षेप में पड़ेंगे अगर आप इसे विस्तार से पढ़ना चाहते हैं तो नीचे दिए गए डाउनलोड बटन पर क्लिक करके फुल नोट्स डाउनलोड कर सकते हैं और मैं आपको विश्वास दिलाता हूं कि जब आप विस्तार में सी लैंग्वेज को पढ़ेंगे तो उसके बाद आपके मन में किसी भी प्रकार का कोई डाउट नहीं रहेगा।
जैसा कि आपने देखा कि आज हम इस पोस्ट में सी लैंग्वेज के फुल नोट्स डाउनलोड भी करेंगे और सी लैंग्वेज को संक्षेप में समझेंगे तो चलिए दोस्तों सी लैंग्वेज को सीखना शुरू करते हैं -
प्रोग्राम (Program):-
सरल शब्दों में, प्रोग्राम संबंधित (Related) निर्देशों (Instructions) का एक समूह होता है। यदि हमें कंप्यूटर से कुछ कार्य कराना हैं तो हम प्रोग्राम की सहायता से करा सकते हैं।
उदाहरण :- Notepad, M.S Word, M.S. Excel etc.
जैसे :- Notepad में Text से Related कार्य कर सकते हैं जैसे Text को लिखना, Text के साइज को बड़ा करना आदि। अर्थात Text को लिखना, Text के साइज को बड़ा करना आदि यह सभी निर्देश हैं तथा इन निर्देश (Instructions) के समूह को Program कहते हैं जो यहाँ पर Notepad है।
प्रोग्रामिंग (Programming):
वह तरीका जिसके माध्यम से हम कम्प्यूटर के साथ Communication कर सके उसे Programming कहते हैं।
क्योकि कंप्यूटर के साथ हम हिंदी या अंग्रेजी में Communicate (संवाद) नहीं सकते, यदि हमें कंप्यूटर से कुछ कार्य करना है तो हमें प्रोग्रामिंग (Programming) करनी होगी।
प्रोग्रामिंग भाषा (Programming Language):
वह भाषा (Language) जिसकी सहायता से हम प्रोग्रामिंग कर सकते हैं उसे प्रोग्रामिंग भाषा (Programming language) कहते हैं।
Programming करने के लिए अब तक अनेक भाषाओं का विकाश किया जा चुका है।
जैसे : C, C++, Java, Python आदि।
प्रोग्रामिंग भाषाओं के स्तर (Levels of Programming languages):
प्रोग्रामिंग भाषाओँ के 3 लेवल होते है
Low level or Machine language
Middle level or Assembly language
High level language
1. निम्न स्तरीय या मशीन भाषा (Low level or Machine language):
- कंप्यूटर की भाषा (Binary Language) कंप्यूटर की मात्र भाषा है।
- कम्प्यूटर केवल बाइनरी भाषा को ही समझ सकता है।
- बाइनरी भाषा में केवल 0 और 1 का ही उपयोग किया जाता है।
- निम्न स्तर की भाषा में कोडर (प्रोग्रामर) बाइनरी भाषा में ही Code लिखते थे तथा इसी प्रकार प्रोग्राम बनाते थे।
- सबसे पहले Program Low Level Language में ही बनाये जाते थे।
- इसे कंप्यूटर Directly (बिना कम्पाइल या इंटरप्रेट किये) समझ लेता था।
- यह बहुत तेज होती थी।
- जैसे :- 00010110 - यह बाइनरी कोड हे जिसका अर्थ 22 होता है।
लाभ (advantage):-
- एक कंप्यूटर आसानी से Low Level की भाषा को समझ सकता है।
- क्योकि इसमें कोड को बाइनरी भाषा में लिखा जाता है इसलिए किसी अनुवादक (Translator) की आवश्यकता नहीं होती है।
- यह बहुत तेज होती है।
नुकसान (Disadvantage):-
- Low Level Language में कोड लिखना तथा समझना बहुत कठिन होता है।
- Low Level Language का कोड मशीन पर निर्भर करता होता है, अर्थात कोड को जिस मशीन पर लिखा गया है, वह उसी मशीन पर सम्पादित (Execute) होगा वह कोड अन्य मशीन पर Execute नहीं हो सकता है।
- इसमें त्रुटिओं (Errors) की ज्यादा सम्भावनाये होती है तथा त्रुटिओं को ढूढ़ना तथा संसोधित करना भी कठिन होता है।
2. Middle Level Language (मध्य स्तर की भाषा या असेम्बली भाषा) :-
मध्य स्तर की भाषा में हमें विशेष चिन्हो, अक्षरों तथा शब्दों, आदि का उपयोग करके कोड लिखते हैं।
बाइनरी के कुछ कोड को कुछ चिन्ह अक्षर या शब्द के साथ प्रतिस्थापित (Replace ) कर दिया जाता है।
उदाहरण :- यानि 0101101100011100 को हेलो से रिप्लेस कर दें। तो हम अपने कोड 0101101100011100 का उपयोग करना होगा तब हम 'HELLO' का उपयोग कर सकते हैं जिससे हमें कोड को लिखने में और समझने में आसानी होगी।
अर्थात मध्य स्तर की भाषा में बाइनरी कोड को कुछ चिन्हो या अक्षरों या शब्दों को Assign कर दिया जाता है।
क्योकि कंप्यूटर केवल Low Level की (Binary) भाषा को समझ सकता है इसलिए Middle Level की भाषा को निम्न स्तर की भाषा में अनुवाद करने के लिए Assembler (वह प्रोग्राम को मध्य स्तर की भाषा को निम्न स्तर की भाषा में परिवर्तित करता है ) का उपयोग किया जाता है।
Assembler मध्य स्तर की भाषा में लिखे गये प्रत्येक चिन्ह, अक्षर, या शब्द को उसके बाइनरी कोड में अनुवाद कर देता है। तथा इस प्रकार कोड Execute होता है।
लाभ :-
- मध्य स्तर की भाषा में कोड लिखना तथा समझना निम्न स्तर की भाषा से सरल होता है।
- इसको समझना निम्न स्तर भाषा से आसान होता है ।
नुकसान :-
- मध्य स्तर की भाषा भी मशीन आर्किटेक्चर पर निर्भर है। इसलिए इसका कोड भी उसी मशीन पर Execute होगा जिसके लिए कोड लिखा गया है।
- इसे निम्न स्तर की भाषा में अनुवाद करने की आवश्यकता होती है, इसलिए यह निम्न स्तर की भाषा से धीमी होती है।
3- High Level Language (उच्च स्तर की भाषा ) :-
उच्च स्तर की भाषा मानव भाषाओ (Human Languages) के सामान है। इसमें Code/Program लिखने के लिए अंग्रेजी के शब्दों का उपयोग किया जाता है।
उच्च स्तर की भाषा में पूर्व निर्धारित (Predefined) शब्दों का एक सेट होता है जिसे कीवर्ड (Keyword) कहते हैं।
कीवर्ड तथा ज्ञात नियमों का सेट को Syntax कहते हैं।
उच्च स्तर की भाषा को निम्न भाषा में परिवर्तित (Convert) करने के लिये कम्पलाइर (Compiler) या इंटरप्रेटर (Interpreter) का उपयोग किया जाता है।
उदारण :- C, C++, Java, Python आदि उच्च स्तर की भाषाएँ हैं।
Note:- Keyword तथा Syntax के बारे में आगे विस्तार से चर्चा करेंगे।
लाभ (advantage) :-
- उच्च स्तर की भाषा में कोड लिखना तथा समझना अधिक आसान होता है।
- उच्च स्तर की भाषा में बनाये गए प्रोग्राम को अलग - अलग मशीन पर चला सकते हैं।
- इसमें त्रुटिओं (Errors) को ढूढ़ना तथा त्रुटिओं को संसोधित करना अधिक आसान होता है।
नुकसान :-
- क्योंकि उच्च स्तर की भाषा को निम्न स्तर की भाषा में परिवर्तित किया जाता है इसलिए उच्च स्तर की भाषा से धीमी होती है।
डिबगिंग (Debugging) :-
- डिबगिंग एक प्रकिया है जिसके द्वारा कोड में से Error तथा Bugs को Detect तथा Correct किया जा सकता है।
- डिबगिंग की प्रकिया में बहुत सरे Steps होते है सबसे पहले Bugs को Identify किया जाता है उसके बाद Bug के स्थान या सोर्स को Find किया जाता है उसके बाद Bug को फिक्स करके प्रोग्राम को Error Free बनाया जाता हैं जिससे की प्रोग्राम सही ढंग के कार्य करे।
- डिबगिंग को करने के लिए Debugger टूल का प्रयोग किया जाता है। Debugging टूल को Debugger कहा जाता है।
कम्पाइलर (Compiler) :-
कम्पाइलर एक सॉफ्टवेयर प्रोग्राम है जो की उच्च स्तर की भाषा को निम्न स्तर की भाषा (Binary Language) में Translate करता है, जिससे की कंप्यूटर उस बाइनरी लैंग्वेज को समझ सके और आपका Program/Code Execute हो सके।
अर्थात उच्च स्तर की भाषा को निम्न की भाषा में अनुबाद (Translate) करना कंपाइलेशन (Compilation) कहलाता है।
Comments (कमेन्ट्स) :-
C Program में Comments ऐसा कोड होता है जिसे कम्पाइलर द्वारा Execute नहीं किया जाता है।
Type Of Comments :-
कमेंट दो प्रकार के होते हैं।
(i) Single Line Comment (//) :-
Single line Comments का उपयोग एक लाइन की टिप्पणी के लिए किया जाता है।
Exa:- // This is a Single Line Comment
(ii) Multiline Comment (/ * */) :-
Multiline Comment का प्रयोग एक से अधिक लाइन की कमेंट (Comment) लिखने के लिये होता है।
Example:-
/ * This
is
a
Multiline
Comment
*/
Basic Structure Of C Program :-
C प्रोग्राम को लिखने के लिए हमें निम्न चरणों से गुजरना पड़ता है।
- Document Section
- Preprocessor/Link Section
- Definition Section
- Global Declaration Section
- Function Declaration Section
- Main Function
- User Defined Function Section
- Documentation Section (Optional)
1. Preprocessor Section (Link Section) :-
इस सेक्शन में हमें प्रोग्राम में प्रयोग होने वाली सभी हैडर फाइल को Declare किया जाता है।
Syntax :- #include <header_file.h>
Exa :- #include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
2- User Defined Function Section :-
इस Section में Program के बारे में बताया जाता है। इसे Multiline Comment में लिखते हैं।
Example :-
/*
File Name :- File_Name.C
Author Name : Author_Name
Date :- Date of The Program
Description :- What Program Do */
3- Definition Section (Optional) :-
इस सेक्शन में प्रोग्राम में प्रयोग होने वाली सभी Symbolic Constants तथा Macros को Define किया जाता है, इसमें "Define" Keyword का प्रयोग किया जाता है।
Exa :- #define PI 3.14
4- Global Declaration Section (Optional):-
इस Sectionमें Global Variables को Declare किया जाता है, Global Variable को Program में कहीं भी Use कर सकते है।
Exa :- int result
5- Function Declaration Section :-
इस सेक्शन में प्रोग्राम में प्रयोग होने वाले सभी Functions को Declare किया जाता है।
Syntax :- Return_Type Function_Name();
Example :- int Function_Name();
6- Main Function Section (Important) :-
इस सेक्शन में हमारे Program का पूरा Code लिखा जाता है,
जब भी हमारा प्रोग्राम रन होता है तो सबसे पहले main() Function ही Execute होता है।
Syntax :-
int main()
{
//Code
}
7- User Define Function Section :-
इस सेक्शन में सभी User-Defined Function को Declare किया जाता है
Downloading Dev-C++ :-
Dev, C++ एक Application Software (Computer App) जिसमे अपने C Program के Code को लिखेंगे और Run करेंगे आप चाहें तो अन्य Application को भी उपयोग कर सकते है।
Dev, C++ को Download करने के लिए नीचे दी गयी पर Link Click करे
Link: https://sourceforge.net/projects/orwelldevcpp/
Writing The First C Program :-
#include <stdio.h> // Header File
int main() // Main Function
{
printf ("Hello World"); // Code
getch(); //Code
return 0; // That Means Return Nothing
}
OUTPUT :-
Hello World
यहाँ पर
#include <stdio.h> :- यहाँ पर हमने stdio.s नामक Header File include की है, इस Header File की मदद से हम printf() Function को Use कर पा रहे है।
int main() :- यहाँ पर int एक Return Type है। int यह बताता है की यह Function कुछ न कुछ Return अवश्य करेगा इसलिए हमने Program के अंत में return 0
लिखा है,
यदि हम int के स्थान पर void उपयोग करने पर void यह बताता ह की हमारा Program कुछ भी Return नहीं करेगा अर्थात "Null" Return करेगा तथा हमें Return 0
लिखने की भी आवश्यकता नहीं है।
main() :- यहाँ Main () Function का नाम है, हम इस Function का नाम Change नहीं सकते है यदि Change करेंगे तो Program Error देगा
{} :- इन्हे Curli Braces कहते हैं। इनके अंदर ही Main Function का सारा Code होता है ।
return 0 :- return 0
यह बताता है कि Program कुछ भी return नहीं करता है।
Executing The Program
यदि आपने प्रोग्राम Devc++ में बनाया है तो अपने बनाये गए प्रोग्राम को Run करने के लिए Compile & Run पर Click करें या F11 key को प्रेस करें इसके बाद एक Black Window (Console Window) Open होगी जिसमें आपके Program का Output होगा।
Translator
वह Program Language में लिखे गए Code को Machine Language (Binary Language ) में Convert करता है। वह Translator कहलाता है।
Translator निम्न प्रकार के होते है।
- Assembler
- Interpreter
- Compiler
1- Assembler :-
वह Program जो Assembly Language (Middle-Level Language) को Machine Language (Binary Language) में Translate या Convert करता है। उसे Assembler कहते है
2- Interpreter (इंटरप्रेटर) :-
वह Program जो High Level Language के Line-By-Line मशीन Language (Binery Language) में Translate करता है। इंटरप्रेटर Perl , Python, Matlab जैसी High Level Language को Binery Langague में Translate करता है।
3- Compiler कम्पाइलर :-
वह Program जो C जैसी High Lavel Language को Binery Language में Translate करता है उसे Compiler कहते है। Compiler code को Line By Line Execute नहीं करता है।
बल्कि पूरे Code को एक साथ Binary Language में Translate करता है।
Input /Output Statements :-
हमें अपने Program में User के कुछ Input लेने के लिए Input Statement तथा Output Show कराने के लिए Output Statement का उपयोग करते है।
C में Input /Output Statement को उपयोग करने के लिए अपने program में stdio.h नामक Header File को include करना होगा।
stdio.h का फूल फॉर्म है 'Standard Input Output Header File' है। इसमें सभी I/O Function होते हैं।
C में Input और Output Functions को 2 Category में Divide किया जाता है।
1- Formatted Input and Output Functions:-
- scanf()
- printf()
2- Non-Formatted Input And Output Functions:-
- gether()
- putchar()
- gets()
- puts()
Note:- gets() एंड puts() के बारे में हम आगे पड़ेंगे.
Format Specifiers:-
C Language में Format Specifiers का उपयोग Varible में Input लेते समय और Variable को Output करते समय किया है।
नीचे टेबल में कुछ Common Data Types और उनके Format Specifiers दिए गए हैं।
printf() :-
printf का उपयोग Output देने के लिए किया जाता है।
Syntax
printf("String ");
Or
printf("Format-Specifiers", Variables Or Expressions);
Progame:-
#include <stdio.h>
int main()
{
int Roll = 125
int Age = 18
char Gender = 'M'
printf("%d", Roll)
printf("\nyour Age : %d", Age)
printf("\nyour Roll No. : %d, Age : %d And Gender : %c", Roll, Age, Gender)
return 0
}
Output:-
125
Your Age : 18
Your Roll No. : 125, Age : 18 And Gender : M
getchar() :- getchar Function का Use एक character का Input लेने के लिए होता है।
Syntax :- Variable = getchar();
Example :
char Ch ;
Ch = getchar();
putchar :- putchar () फंक्शन्स का Use एक charactor का Output देने के लिए होता है।
Sytax :- putchar(Variable);
Exa :
char Ch = getchar();
putchar(Ch );
getchar() And putchar() Function Example Program :-
#include <stdio.h>
int main()
{
char Grade;
printf("Enter Your Grade : ");
Grade = getchar();
printf("Your Grde Is ");
putchar(Grade);
return 0;
}
Output : - Enter Your Grade : A
Your Grde Is A
Escape Sequence :-
Escape Sequence का Use printf() Funciton के साथ Output को Format करने के लिए लिया जाता है।
नीचे दी गयी लिस्ट में कुछ महत्वपूर्ण Escape Sequence characters दिए गए हैं।
- \n :- Create New Line
- \t :- Give One Tab
- \' :- Print Single Quote
- \" :- Print double Quote
- \\ :- Print Back Slash
Escape Sequence Example Program :-
> #include <stdio.h>
int main()
{
printf("Ninja \ncoder\n");
printf("Ninja \tcoder\n");
printf("Ninja \'Coder\n");
printf("Ninja \"Coder");
return 0;
}
Output :-
Ninja
Coder
Ninja Coder
Ninja 'Coder
Ninja "Coder
Keywords :-
जैसे हमारी भाषा हिंदी में हँसना, रोना, दौड़ना, शब्दों का पहले से ही एक मतलब है और इसलिए हम इन शब्दों का किसी और काम के लिए Use नहीं कर सकते है ठीक वैसे ही Program में होता है।
Keyword ऐसे Reserved Words है जिनका C Program में पहले से ही Specific Meaning है,
दूसरे शब्दों में C Programing Keyword सिर्फ Predefined Function के लिए ही Use किये जाते हैं।
C Programing Language में 32 Keyword हैं और C Keyword हमेशा Lowercase में लिखे जाते है। नीचे सभी 32 Keyword की लिस्ट दी गयी हैं।
Data Types:-
C प्रोग्राम में विभिन्न प्रकार के Data को हैंडल करने के लिए विभिन्न प्रकार के Data Types दिए गए हैं।
डेटाटाइप के प्रकार :- C Programming में 2 प्रकार के Data Type हैं।
1. Primitive :- int, char, float, Void.
2. Derived /Non-Primitive Or (User Defined) :- Array, String, Structure, Union, Pointer, Function, Typedef, Enum.
Note :- Derived Datatypes के बारे में हम आगे पढ़ेंगे.
1. Primitive Datatypes :-
Primitive Datatypes को Fundamental Data Typs या Built In या Basic Data Type भी कहते हैं।
int :- int integer (पूर्णांक) Value को Store करने के लिए होता है।
float :- यह floating Point Value (दशमलव मान) को Store करने के लिए होता है।
char :- Value को Storte करने के लिए होता है।
Void :- Void का अर्थ Null होता है अर्थात यह कुछ भी Store नहीं करता है।
Variable :-
C में Data को Store करने के लिए Variable बनाये जाते हैं, Variable Container की तरह होते है जिनका Use Data को Store करने के लिए किया जाता होता है।
Variable की Value को Program में कहीं भी Change किया जा सकता है। Variable Declartion Syntax
Data _Type Variable_Name;
या
Data _Type Variable_Name1, Variable_Name2, … Variable_Namen;
Exa:-
int age ;
char Gender;
float Hight;
Variable Initialization :-
Data _Type Variable_Name = Value Or Expression;
या
Data_Type Variable_Name;
Variable_Name = Value Or Expression;
Variable Example Program:-
#include <stdio.h>
int main()
{
int num1 = 10, num2 = 20;
float Hight, Weight;
Hight = 6.6;
Weight = 10 * 5 + 5.6;
printf("num1 : %d, num2 : %d, Hight : %f Feet And Weight : %f Kg", num1, num2, Hight, Weight);
return 0;
}
OUTPUT :-
num1 : 10, num2 : 20, Hight : 6.600000 Feet And Weight : 55.599998 Kg
Constants :-
यदि हम अपने Program में किसी Variable की Value को Fix करना चाहते हैं, तो हमें उसे Constant बनाना होगा।
Constant बनाने के लिए Datatype से पहले "const" Keyword का Use करते है। Constant बनाते समय ही हमे उसकी Value Set करनी होती है, तथा बाद में पुरे Program में उस Constant कि Value Change नहीं हो कर सकते हैं।
Syntax :-
Const Data_Type Constant_Name = Value;
Constant Example Program : -
#include <stdio.h>
int main()
{
Const float PI = 3.14;
printf("PI = %f", PI);
return 0;
}
Output :-
PI = 3.140000
Expressions :-
C Programing में Constant ,Variable और Operators के Combination को Expression कहते हैं।
Exa :- X = A * B + C - D
Operands :-
किसी Operation में Operator के साथ जो Variable या Constant उपयोग होते है उन्हें Operands कहते है।
Exa :- C = A + B
यहाँ C ,A तथा B Operands हैं,
तथा = ,+ Operators हैं।
Operators :-
C Programming में Operators कुछ Special Symbols होते है। जिनका Meaning और कार्य पहले से Fix होता है।
Types Of Operators:-
- Arithmetic Operators
- Assignment Operators
- Relational Or Comparison Operators
- Logical Operators
- Increment And Decrement Operators
- Conditional Or Ternary Operators
- Bitwise Operators
1. Arithmetic Operators:-
Arithmetic Operators से तो आप पहले से ही Familiar है क्योंकि बचपन से ही हम Addition (+), Subtraction (-), Multiplication (*), Division (/) And Modulus (%) करते आये हैं।
- Addition(+) :- Operands को जोड़ने के लिए।
- Subtraction (-) :- Operands को घटाने के लिए।
- Multiplication (*) :- Operands में गुणा करने के लिए।
- Divide (/) :- Operands में भाग करने के लिए।
- Modulus (%) :- Operands में भाग देकर शेषफल निकलने के लिए।
2. Assignment Operators: -
Arithmetic Operators की Help से Mathematical Expression को Evaluate (Solve) करके उसके Result को किसी Variable में Assign करने के लिए Assignment Operators का Use किया जाता है।
Assignment Operator (=) Right Side वा ली Value, Variable, Constant या Expression के Result Value को Left Side वाले Variable में Assign (Copy) कर देता है।
- Simple Assignment (=):- Right side value या expression को solve करके left side के variable में value assign करने के लिए।
- Addition Assignment (+=) :- Left और Right side value (variable) को जोड़कर left side variable में assign करने के लिए।
- Subtration Assignment (-=) :- Left और Right side value (variable) को घटाकर left side variable में assign करने के लिए।
- Multiplication Assignment (*=) :- Left और Right side value (variable) को गुणा देकर left side variable में assign करने के लिए।
- Division Assignment (/=) :- Left और Right side value (variable) को भाग देकर left side variable में assign करने के लिए।
- Module Assignment (%=) :- Left और Right side value (variable) को भाग देकर शेषफल left side variable में assign करने के लिए।
Relational Or Comparison Operators:-
Relational Operators का Use 2 Values की Relationship को Compare करने के किया जाता है। अगर Relationship गलत (False) है तो ये Operators 0 Return करते हैं और सही (True) होने पर Non-Zero integer number Return करते हैं।
- Equal to (==) :- जब दोनो Operands की value बराबर होती है तब true return होगा
- Not Equal to (!=) :- जब दोनो operands की value अलग-अलग होती है तब true return होगा
- Less than (<) :- जब left operands की value right operand की value से काम होती तब true return होगा
- Greater than (>) :- जब left operands की value right operand की value से ज्यादा होती है तब true return होगा
- Less than or equal to (<=) :- जब left operands की value right operand की value से कम या बराबर होती है तब true return होगा
- Greater than or equal to (>=) :- जब left operands की value right operand की value से ज्यादा या बराबर होती है तब true return होगा
Logical Operators:-
कभी-कभी हमें अपने Programs में एक से अधिक Conditions को एक साथ Define करना होता है जो की एक-दूसरे से Relate होती है और इसके लिए हम Logical Operators का Use करते हैं।
Logical Operators सभी Conditions के Result Values (True, False) को Examine करने के बाद False यानी 0 और True यानी को Non-Zero integer number Return करता हैं।
- AND (&&) :- जब सभी conditions true होंगी तब true return होगा
- OR (||) :- जब सभी conditions में से अगर एक भी conditions true होगी तब true return होगा।
- NOT (!) :- ये condition result को reserve कर देता है यानि true को false और false को true
Increment And Decrement Operators: -
Increment ( ++ ) और Decrement ( — ) Operators Unary Operator हैं यानी ये सिफ एक Single Variable के साथ ही Use होते हैं।
Increment Operator की Help से Variable की Value में 1 number का Increment हो जाता है और Decrement Operator की Help से Variable की Value में 1 number का Decrement हो जाता है।
Exa:-
X = X + 1 को आप ऐसे भी लिख सकते हैं ++X
X = X – 1 को आप ऐसे भी लिख सकते हैं --X
Conditional Or Ternary Operators:-
Conditional Operator का Use हम If-Else Statement की तरह ही Decision Making में करते हैं।
आप ऐसा भी कह सकते हैं की ये If-Else की Short Form है।
Conditional Operator (Ternary Operator) में Two Symbols ( ? ) और ( : ) का Use हो ता है।
Question Mark Symbol ( ? ) से पहले Condition आती है और उसके बाद True Expression (Statement) और Colon Mark ( : ) के बाद False Expression आता है।
Syntax:-
(Condition) ? True-Expression : False-Expression;
Exa:-
(6%2 == 0)?printf("True"):printf("False");
Bitwise Operators: -
Bitwise Operators का उपयोग Operands के बिच Bit Level में ऑपरेशन परफॉर्म करने के लिए किया जाता Bitwise Operators सबसे पहले ओपेरंडस को Bit में कन्वर्ट करता है फिर ऑपरेशन परफॉर्म करता
- & :- Bitwise AND Operator
- | :- Bitwise OR Operator
- ^ :- Bitwise Exclusive OR Operator
- ~ :- One's Complement Operator (Unary Operator)
- << :- Left Shift Operator
- >> :- Right Shift Operator
Data Type Costing :-
C Programing में एक Data Type की Value को दूसरे Datatypes की Value में Change (Cast )करने को ही Type Casting कहते हैं।
Type Casting के प्रकार :-
Implicit Type Casting (Automatic Conversion)
Explicit Type Casting (Narrowing Conversion )
1. Implicit Type Casting :-
इस प्रकार की Type Casting स्वयं हो जाती है।
char -> Short -> int -> Long float -> Double -> Long Double
ऊपर Smallest To Largest Data Type Order दिया गया है। और Implicit Type Casting इसी Order के समय Work करती है।
Implicit Type Casting Example Program :-
#include <stdio.h>
int main()
{
Short A = 10;
int B, X;
char Ch = 'A';
// Implicit Type Casting
B = A;
X = C;
// Print Statements
printf("Value Of A : %d\n", A);
printf("Value Of B : %d\n", B);
printf("Value Of X : %d", X);
return 0;
}
Output :-
Value Of A : 10
Value Of B : 10
Value Of X : 65
2. Explicit Type Casting :-
जब हम किसी ज्यादा Memory लेने वाले Data Type की Value कम Memory लेने वाले Data Type की Value में Change करते हैं। तो उसे Explicit Type Casting कहते हैं।
Long Double -> Double -> float -> Long -> int -> Short-char
Syntax :- Variable = (Data-Type) Variable Or Value Or Expression
नोट :- C Programming में Explicit Type Casting में भी Data Lost हो सकता है जैसे जब आप float Data Type को int में Cast करेंगे तब Decimal Part Lost जायेगा.
Explicit Type Casting Example Program :-
#include <stdio.h>
int main()
{
int N;
float X = 20.75;
// Explicite Conversion
N = (int) X;
// Print Statements
printf("Value Of X : %f\n", X);
printf("Value Of N : %d", N);
return 0;
}
Output :-
Value Of X : 20.750000
Value Of N : 20
Storage Classes :-
Storage Classes निम्न होती हैं।
- Auto (Automatic)
- Register
- Static
- Extern
1. auto :-
वह वेरिएबल जिन्हे हम Function (Block ) के अंदर Declare करते हैं। वे Local Variable कहते हैं।
यह Default होता है अर्थात आपको Auto Variable बनाने के लिए Auto Keyword लिखने की आवश्यकता नहीं है।
Syntax :-
Data_Type Variable_Name;
\\ Or
Auto Data_Type Variable_Name;
2. register :–
जिन वेरिएबल को रजिस्टर स्टोरीज क्लास में डिफाइन किया जाता है उन्हें RAM के बजाय रजिस्टर (जो की सामान्य रूप से एक करैक्टर के बराबर होती है) में स्टोर किया जाता है इसका मतलब कि किसी वेरिएबल की स्टोरेज साइज उतनी ही होगी जितनी रजिस्टर की मैक्स वैल्यू होती इसमें & ओपेरटर को स्टोर नहीं कर सकते रजिस्टर स्टोरेज क्लास उन्ही वेरिएबल उन्ही को डिफाइन किया जाता है जिनकी वैल्यू बार बार करना पड़ता है
जैसे Counter.
Example
Register int age;
यहां पर ध्यान देने की बात यह है जब किसी वेरिएबल को रजिस्टर डिफाइन किया जाता हैं तो इसका अर्थ यह नहीं है कि उस वेरिएबल को रजिस्टर में ही स्टोर किया जायेगा या नहीं यह उस कंप्यूटर के हार्डवेयर और उसके ऑपरेटिंग सिस्टम पर निर्भर करता है।
3. static :-
Static Class कंपाइलर को निर्देश देता है कि इस वेरिएबल को पूरे प्रोग्राम टाइम में एक्टिव रखें ना कि जैसे वेरिएबल की जब भी कॉल हो (Comes into Scope) उसको Create और Initialize करें और कॉल खत्म (Goes Out Of Scope) होते ही Destroy करें इसे अगर सीधे शब्दों में कहें तो Local Variable और Static Variable में इतना अंतर होता है कि Local Variable को जितनी बार कॉल किया जाता है उन्हें हर बार Create किया जाता है जबकि Static Variable अपना Status को Save रखते हैं और अगली बार वहीं से शुरू करते हैं वास्तव में जब हम Local Variable इस्तेमाल करते हैं तो मेमोरी Allot करते समय उस वेरिएबल की मेमोरी भी उस फंक्शन के साथ ही Allot होती है परंतु जब हम Static Variable डिफाइन करते हैं तो उस Static Class वेरिएबल की वैल्यू एक शेयर्ड प्लेस पर डिफाइन होती है। जिसको सभी फंक्शन एक्सेस कर सकते हैं।
4. Extern:-
Extern Keyword का इस्तेमाल करके हम एक Global वेरिएबल डिफाइन कर सकते हैं जिसको हम किसी दूसरी फाइल में भी इस्तेमाल कर सकते हैं। जब हम कोई Global वेरिएबल डिफाइन करते हैं तो वह उस समय न डिफाइन होकर अलग फाइल में डिफाइन होता है और उस फाइल में सिर्फ Reference ही Return होता है जिसे हम बाद में किसी दूसरी फाइल से भी एक्सेस कर सकते हैं।