Thursday, 27 April 2017

C_Language

W3.CSS

C Programming Language Tutorial

C language Tutorial with programming approach for beginners and professionals, helps you to understand the C language tutorial easily. Our C tutorial explains each topic with programs.
The C Language is developed for creating system applications that direct interacts to the hardware devices such as drivers, kernals etc.
C programming is considered as the base for other programming languages, that is why it is known as mother language.
It can be defined by following ways:
  1. Mother language
  2. System programming language
  3. Procedure-oriented programming language
  4. Structured programming language
  5. Mid level programming language

1) C as a mother language

C language is considered as the mother language of all the modern languages because most of the compilers, JVMs, Kernals etc. are written in C language and most of languages follows c syntax e.g. C++, Java etc.
It provides the core concepts like array, functions, file handling etc. that is being used in many languages like C++, java, C# etc.

2) C as a system programming language

A system programming language is used to create system softwares. C language is a system programming language because it can be used to do low level programming (e.g. driver and kernel). It is generally used to create hardware devices, OS, drivers, kernels etc. For example, linux kernel is written in C.
It can?t be used in internet programming like java, .net, php etc.

3) C as a procedural language

A procedure is known as function, method, routine, subroutine etc. A procedural language specifies a series of steps or procedures for the program to solve the problem.
A procedural language breaks the program into functions, data structures etc.
C is a procedural language. In C, variables and function prototypes must be declared before being used.

4) C as a structured programming language

A structured programming language is a subset of procedural language. Structure means to break a program into parts or blocks so that it may be easy to understand.
In C language, we break the program into parts using functions. It makes the program easier to understand and modify.

5) C as a mid-level programming language

C is considered as a middle level language because it supports the feature of both low-level and high level language. C language program is converted into assembly code, supports pointer arithmetic (low level), but it is machine independent (feature of high level).
Low level language is specific to one machine i.e. machine dependent. It is machine dependent, fast to run. But it is not easy to understand.
High Level language is not specific to one machine i.e. machine independent. It is easy to understand.

History of C Language

History of C language is interesting to know. Here we are going to discuss brief history of c language.
C programming language was developed in 1972 by Dennis Ritchie at bell laboratories of AT&T (American Telephone & Telegraph), located in U.S.A.
Dennis Ritchie is known as the founder of c language.
It was developed to overcome the problems of previous languages such as B, BCPL etc.
Initially, C language was developed to be used in UNIX operating system. It inherits many features of previous languages such as B and BCPL.
Let's see the programming languages that were developed before C language.
Language Year Developed By
Algol 1960 International Group
BCPL 1967 Martin Richard
B 1970 Ken Thompson
Traditional C 1972 Dennis Ritchie
K & R C 1978 Kernighan & Dennis Ritchie
ANSI C 1989 ANSI Committee
ANSI/ISO C 1990 ISO Committee
C99 1999 Standardization Committee

Features of C Language

C is the widely used language. It provides a lot of features that are given below.
  1. Simple
  2. Machine Independent or Portable
  3. Mid-level programming language
  4. structured programming language
  5. Rich Library
  6. Memory Management
  7. Fast Speed
  8. Pointers
  9. Recursion
  10. Extensible

1) Simple

C is a simple language in the sense that it provides structured approach (to break the problem into parts), rich set of library functions, data types etc.

2) Machine Independent or Portable

Unlike assembly language, c programs can be executed in many machines with little bit or no change. But it is not platform-independent.

3) Mid-level prorgramming language

C is also used to do low level programming. It is used to develop system applications such as kernel, driver etc. It also supports the feature of high level language. That is why it is known as mid-level language.

4) Structured prorgramming language

C is a structured programming language in the sense that we can break the program into parts using functions. So, it is easy to understand and modify.

5) Rich Library

C provides a lot of inbuilt functions that makes the development fast.

6) Memory Management

It supports the feature of dynamic memory allocation. In C language, we can free the allocated memory at any time by calling the free() function.

7) Speed

The compilation and execution time of C language is fast.

8) Pointer

C provides the feature of pointers. We can directly interact with the memory by using the pointers. We can use pointers for memory, structures, functions, array etc.

9) Recursion

In c, we can call the function within the function. It provides code reusability for every function.

10) Extensible

C language is extensible because it can easily adopt new features.

First C Program

Before starting the abcd of C language, you need to learn how to write, compile and run the first c program.
To write the first c program, open the C console and write the following code:
  1. #include <stdio.h>  
  2. #include <conio.h>  
  3. void main(){  
  4. printf("Hello C Language");  
  5.   
  6. getch();  
  7. }  
#include <stdio.h> includes the standard input output library functions. The printf() function is defined in stdio.h .
#include <conio.h> includes the console input output library functions. The getch() function is defined in conio.h file.
void main() The main() function is the entry point of every program in c language. The void keyword specifies that it returns no value.
printf() The printf() function is used to print data on the console.
getch() The getch() function asks for a single character. Until you press any key, it blocks the screen.

How to compile and run the c program

There are 2 ways to compile and run the c program, by menu and by shortcut.

By menu

Now click on the compile menu then compile sub menu to compile the c program.
Then click on the run menu then run sub menu to run the c program.

By shortcut

Or, press ctrl+f9 keys compile and run the program directly.
You can view the user screen any time by pressing the alt+f5 keys.
Now press Esc to return to the turbo c++ console.

clear screen by clrscr() function

If you run the c program many times, it will append the output in previous output. But, you can call clrscr() function to clear the screen. So it will be better for you to call clrscr() function after the main method as given below:
  1. #include <stdio.h>  
  2. #include <conio.h>  
  3. void main(){  
  4. clrscr();  
  5. printf("Hello C Language");  
  6.   
  7. getch();  
  8. }  

Flow of C Program

The C program follows many steps in execution. To understand the flow of C program well, let us see a simple program first.
File: simple.c
  1. #include <stdio.h>  
  2. void main(){  
  3. printf("Hello C Language");  
  4. }  
Let's try to understand the flow of above program by the figure given below.
1) C program (source code) is sent to preprocessor first. The preprocessor is responsible to convert preprocessor directives into their respective values. The preprocessor generates an expanded source code.
2) Expanded source code is sent to compiler which compiles the code and converts it into assembly code.
3) The assembly code is sent to assembler which assembles the code and converts it into object code. Now a simple.obj file is generated.
4) The object code is sent to linker which links it to the library such as header files. Then it is converted into executable code. A simple.exe file is generated.
5) The executable code is sent to loader which loads it into memory and then it is executed. After execution, output is sent to console.

printf scanf in C

The printf() and scanf() functions are used for input and output in C language. Both functions are inbuilt library functions, defined in stdio.h (header file).

printf() function

The printf() function is used for output. It prints the given statement to the console.
The syntax of printf() function is given below:
  1. printf("format string",argument_list);  
The format string can be %d (integer), %c (character), %s (string), %f (float) etc.

scanf() function

The scanf() function is used for input. It reads the input data from the console.
  1. scanf("format string",argument_list);  

Program to print cube of given number

Let's see a simple example of c language that gets input from the user and prints the cube of the given number.
  1. #include<stdio.h>  
  2. #include<conio.h>  
  3. void main(){  
  4. int number;  
  5. clrscr();  
  6.   
  7. printf("enter a number:");  
  8. scanf("%d",&number);  
  9.   
  10. printf("cube of number is:%d ",number*number*number);  
  11.   
  12. getch();  
  13. }  

Output

enter a number:5  cube of number is:125  
The scanf("%d",&number) statement reads integer number from the console and stores the given value in number variable.
The printf("cube of number is:%d ",number*number*number) statement prints the cube of number on the console.

Program to print sum of 2 numbers

Let's see a simple example of input and output in C language that prints addition of 2 numbers.
  1. #include<stdio.h>  
  2. #include<conio.h>  
  3. void main(){  
  4. int x=0,y=0,result=0;  
  5. clrscr();  
  6.   
  7. printf("enter first number:");  
  8. scanf("%d",&x);  
  9. printf("enter second number:");  
  10. scanf("%d",&y);  
  11.   
  12. result=x+y;  
  13. printf("sum of 2 numbers:%d ",result);  
  14.   
  15. getch();  
  16. }  

Output

enter first number:9  enter second number:9  sum of 2 numbers:18  

Variables in C

A variable is a name of memory location. It is used to store data. Its value can be changed and it can be reused many times.
It is a way to represent memory location through symbol so that it can be easily identified.
Let's see the syntax to declare a variable:
  1. type variable_list;  
The example of declaring variable is given below:
  1. int a;  
  2. float b;  
  3. char c;  
Here, a, b, c are variables and int,float,char are data types.
We can also provide values while declaring the variables as given below:
  1. int a=10,b=20;//declaring 2 variable of integer type  
  2. float f=20.8;  
  3. char c='A';  

Rules for defining variables

  • A variable can have alphabets, digits and underscore.
  • A variable name can start with alphabet and underscore only. It can't start with digit.
  • No white space is allowed within variable name.
  • A variable name must not be any reserved word or keyword e.g. int, float etc.
Valid variable names:
  1. int a;  
  2. int _ab;  
  3. int a30;  
Inalid variable names:
  1. int 2;  
  2. int a b;  
  3. int long;  

Types of Variables in C

There are many types of variables in c:
  1. local variable
  2. global variable
  3. static variable
  4. automatic variable
  5. external variable

Local Variable

A variable that is declared inside the function or block is called local variable.
It must be declared at the start of the block.
  1. void function1(){  
  2. int x=10;//local variable  
  3. }  
You must have to initialize the local variable before it is used.

Global Variable

A variable that is declared outside the function or block is called global variable. Any function can change the value of the global variable. It is available to all the functions.
It must be declared at the start of the block.
  1. int value=20;//global variable  
  2. void function1(){  
  3. int x=10;//local variable  
  4. }  

Static Variable

A variable that is declared with static keyword is called static variable.
It retains its value between multiple function calls.
  1. void function1(){  
  2. int x=10;//local variable  
  3. static int y=10;//static variable  
  4. x=x+1;  
  5. y=y+1;  
  6. printf("%d,%d",x,y);  
  7. }  
If you call this function many times, local variable will print the same value for each function call e.g, 11,11,11 and so on. But static variable will print the incremented value in each function call e.g. 11, 12, 13 and so on.

Automatic Variable

All variables in C that is declared inside the block, are automatic variables by default. By we can explicitly declare automatic variable using auto keyword.
  1. void main(){  
  2. int x=10;//local variable (also automatic)  
  3. auto int y=20;//automatic variable  
  4. }  

External Variable

We can share a variable in multiple C source files by using external variable. To declare a external variable, you need to use extern keyword.
myfile.h
  1. extern int x=10;//external variable (also global)  
program1.c
  1. #include "myfile.h"  
  2. #include <stdio.h>  
  3. void printValue(){  
  4.     printf("Global variable: %d", global_variable);  
  5. }  

Data Types in C

A data type specifies the type of data that a variable can store such as integer, floating, character etc.
There are 4 types of data types in C language.
Types Data Types
Basic Data Type int, char, float, double
Derived Data Type array, pointer, structure, union
Enumeration Data Type enum
Void Data Type void

Basic Data Types

The basic data types are integer-based and floating-point based. C language supports both signed and unsigned literals.
The memory size of basic data types may change according to 32 or 64 bit operating system.
Let's see the basic data types. Its size is given according to 32 bit architecture.
Data Types Memory Size Range
char 1 byte −128 to 127
signed char 1 byte −128 to 127
unsigned char 1 byte 0 to 255
short 2 byte −32,768 to 32,767
signed short 2 byte −32,768 to 32,767
unsigned short 2 byte 0 to 65,535
int 2 byte −32,768 to 32,767
signed int 2 byte −32,768 to 32,767
unsigned int 2 byte 0 to 65,535
short int 2 byte −32,768 to 32,767
signed short int 2 byte −32,768 to 32,767
unsigned short int 2 byte 0 to 65,535
long int 4 byte -2,147,483,648 to 2,147,483,647
signed long int 4 byte -2,147,483,648 to 2,147,483,647
unsigned long int 4 byte 0 to 4,294,967,295
float 4 byte
double 8 byte
long double 10 byte

Keywords in C

A keyword is a reserved word. You cannot use it as a variable name, constant name etc. There are only 32 reserved words (keywords) in C language.
A list of 32 keywords in c language is given below:
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

C Operators

An operator is simply a symbol that is used to perform operations. There can be many types of operations like arithmetic, logical, bitwise etc.
There are following types of operators to perform different types of operations in C language.
  • Arithmetic Operators
  • Relational Operators
  • Shift Operators
  • Logical Operators
  • Bitwise Operators
  • Ternary or Conditional Operators
  • Assignment Operator
  • Misc Operator

Precedence of Operators in C

The precedence of operator species that which operator will be evaluated first and next. The associativity specifies the operators direction to be evaluated, it may be left to right or right to left.
Let's understand the precedence by the example given below:
  1. int value=10+20*10;  
The value variable will contain 210 because * (multiplicative operator) is evaluated before + (additive operator).
The precedence and associativity of C operators is given below:
Category Operator Associativity
Postfix () [] -> . ++ - - Left to right
Unary + - ! ~ ++ - - (type)* & sizeof Right to left
Multiplicative * / % Left to right
Additive + - Left to right
Shift << >> Left to right
Relational < <= > >= Left to right
Equality == != Left to right
Bitwise AND & Left to right
Bitwise XOR ^ Left to right
Bitwise OR | Left to right
Logical AND && Left to right
Logical OR || Left to right
Conditional ?: Right to left
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left
Comma , Left to right

Comments in C

Comments in C language are used to provide information about lines of code. It is widely used for documenting code. There are 2 types of comments in C language.
  1. Single Line Comments
  2. Multi Line Comments

Single Line Comments

Single line comments are represented by double slash \\. Let's see an example of single line comment in C.
  1. #include <stdio.h>      
  2. #include <conio.h>    
  3. void main(){      
  4. clrscr();      
  5. //printing information  
  6. printf("Hello C");  
  7. getch();      
  8. }      
Output:
Hello C  
Even you can place comment after statement. For example:
  1. printf("Hello C");//printing information  

Mult Line Comments

Multi line comments are represented by slash asterisk \* ... *\. It can occupy many lines of code but it can't be nested. Syntax:
  1. /*  
  2. code 
  3. to be commented 
  4. */  
Let's see an example of multi line comment in C.
  1. #include <stdio.h>      
  2. #include <conio.h>    
  3. void main(){      
  4. clrscr();      
  5. /*printing 
  6. information*/  
  7. printf("Hello C");  
  8. getch();      
  9. }      
Output:
Hello C  

Escape Sequence in C

An escape sequence in C language is a sequence of characters that doesn't represent itself when used inside string literal or character.
It is composed of two or more characters starting with backslash \. For example: \n represents new line.

List of Escape Sequences in C

Escape Sequence Meaning
\a Alarm or Beep
\b Backspace
\f Form Feed
\n New Line
\r Carriage Return
\t Tab (Horizontal)
\v Vertical Tab
\\ Backslash
\' Single Quote
\" Double Quote
\? Question Mark
\nnn octal number
\xhh hexadecimal number
\0 Null

Constants in C

A constant is a value or variable that can't be changed in the program, for example: 10, 20, 'a', 3.4, "c programming" etc.
There are different types of constants in C programming.

List of Constants in C

Constant Example
Decimal Constant 10, 20, 450 etc.
Real or Floating-point Constant 10.3, 20.2, 450.6 etc.
Octal Constant 021, 033, 046 etc.
Hexadecimal Constant 0x2a, 0x7b, 0xaa etc.
Character Constant 'a', 'b', 'x' etc.
String Constant "c", "c program", "c in javatpoint" etc.

2 ways to define constant in C

There are two ways to define constant in C programming.
  1. const keyword
  2. #define preprocessor

1) C const keyword

The const keyword is used to define constant in C programming.
  1. const float PI=3.14;  
Now, the value of PI variable can't be changed.
  1. #include <stdio.h>      
  2. #include <conio.h>    
  3. void main(){      
  4. const float PI=3.14;  
  5. clrscr();      
  6. printf("The value of PI is: %f",PI);  
  7. getch();      
  8. }      
Output:
The value of PI is: 3.140000  
If you try to change the the value of PI, it will render compile time error.
  1. #include <stdio.h>      
  2. #include <conio.h>    
  3. void main(){      
  4. const float PI=3.14;  
  5. clrscr();      
  6. PI=4.5;  
  7. printf("The value of PI is: %f",PI);  
  8. getch();      
  9. }      
Output:
Compile Time Error: Cannot modify a const object  

2) C #define preprocessor

The #define preprocessor is also used to define constant. We will learn about #define preprocessor directive later.

C #define

The #define preprocessor directive is used to define constant or micro substitution. It can use any basic data type.
Syntax:
  1. #define token value  
Let's see an example of #define to define a constant.
  1. #include <stdio.h>  
  2. #define PI 3.14  
  3. main() {  
  4.    printf("%f",PI);  
  5. }  
Output:
3.140000  
Let's see an example of #define to create a macro.
  1. #include <stdio.h>  
  2. #define MIN(a,b) ((a)<(b)?(a):(b))  
  3. void main() {  
  4.    printf("Minimum between 10 and 20 is: %d\n", MIN(10,20));    
  5. }  
Output:
Minimum between 10 and 20 is: 10  
3Notepad is a basic text editor that you can use to create simple documents. The most common use for Notepad is to view or edit text (.txt) files, but many users find Notepad a simple tool for creating Web pages.
3Notepad is a basic text editor that you can use to create simple documents. The most common use for Notepad is to view or edit text (.txt) files, but many users find Notepad a simple tool for creating Web pages.

No comments:

Post a Comment

Please write your view and suggestion....