Monday, August 8, 2022

                                                           Special thank w3school

What is C?

C is a general-purpose programming language created by Dennis Ritchie at the Bell Laboratories in 1972.

It is a very popular language, despite being old.

C is strongly associated with UNIX, as it was developed to write the UNIX operating system.


Why Learn C?

  • It is one of the most popular programming language in the world
  • If you know C, you will have no problem learning other popular programming languages such as Java, Python, C++, C#, etc, as the syntax is similar
  • C is very fast, compared to other programming languages, like Java and Python
  • C is very versatile; it can be used in both applications and technologies

Difference between C and C++

  • C++ was developed as an extension of C, and both languages have almost the same syntax
  • The main difference between C and C++ is that C++ support classes and objects, while C does not

Get Started

This tutorial will teach you the very basics of C.

It is not necessary to have any prior programming experience.

Get Started With C

To start using C, you need two things:

  • A text editor, like Notepad, to write C code
  • A compiler, like GCC, to translate the C code into a language that the computer will understand

There are many text editors and compilers to choose from. In this tutorial, we will use an IDE (see below).


C Install IDE

An IDE (Integrated Development Environment) is used to edit AND compile the code.

Popular IDE's include Code::Blocks, Eclipse, and Visual Studio. These are all free, and they can be used to both edit and debug C code.

Note: Web-based IDE's can work as well, but functionality is limited.

We will use Code::Blocks in our tutorial, which we believe is a good place to start.

You can find the latest version of Codeblocks at http://www.codeblocks.org/. Download the mingw-setup.exe file, which will install the text editor with a compiler.


C Quickstart

Let's create our first C file.

Open Codeblocks and go to File > New > Empty File.

Write the following C code and save the file as myfirstprogram.c (File > Save File as):

myfirstprogram.c

Don't worry if you don't understand the co

de above - we will discuss it in detail in later chapters. For now, focus on how to run the code.

In Codeblocks, it should look like this:

Then, go to Build > Build and Run to run (execute) the program. The result will look something to this:

Example explained

Line 1: #include <stdio.h> is a header file library that lets us work with input and output functions, such as printf() (used in line 4). Header files add functionality to C programs.

Don't worry if you don't understand how  #include <stdio.h> works. Just think of it as something that (almost) always appears in your program.

Line 2: A blank line. C ignores white space. But we use it to make the code more readable.

Line 3: Another thing that always appear in a C program, is main(). This is called a function. Any code inside its curly brackets {} will be executed.

Line 4: printf() is a function used to output/print text to the screen. In our example it will output "Hello World".

Note that: Every C statement ends with a semicolon ;

Note: The body of int main() could also been written as:
int main(){printf("Hello World!");return 0;}

Remember: The compiler ignores white spaces. However, multiple lines makes the code more readable.

Line 5: return 0 ends the main() function.

Line 6: Do not forget to add the closing curly bracket } to actually end the main function.

Comments


Comments in C

Comments can be used to explain code, and to make it more readable. It can also be used to prevent execution when testing alternative code.

Comments can be singled-lined or multi-lined.


Single-line Comments

Single-line comments start with two forward slashes (//).

Any text between // and the end of the line is ignored by the compiler (will not be executed).

This example uses a single-line comment before a line of code:

Example

// This is a comment
printf("Welcome to our website!");

This example uses a single-line comment at the end of a line of code:

Example

printf("Welcome to our website!"); // This is a comment

C Multi-line Comments

Multi-line comments start with /* and ends with */.

Any text between /* and */ will be ignored by the compiler:

Example

/* The code below will print the words Welcome to our website!
to the screen, and it is amazing */

printf("
Welcome to our website!");

Single or multi-line comments?

It is up to you which you want to use. Normally, we use // for short comments, and /* */ for longer.

Good to know: Before version C99 (released in 1999), you could only use multi-line comments in C.

Variables

Variables are containers for storing data values.

In C, there are different types of variables (defined with different keywords), for example:

  • int - stores integers (whole numbers), without decimals, such as 123 or -123
  • float - stores floating point numbers, with decimals, such as 19.99 or -19.99
  • char - stores single characters, such as 'a' or 'B'. Char values are surrounded by single quotes

Declaring (Creating) Variables

To create a variable, specify the type and assign it a value:

Syntax

type variableName = value;

Where type is one of C types (such as int), and variableName is the name of the variable (such as x or myName). The equal sign is used to assign a value to the variable.

So, to create a variable that should store a number, look at the following example:

Example

Create a variable called myNum of type int and assign the value 15 to it:

int myNum = 15;

You can also declare a variable without assigning the value, and assign the value later:

Example

int Num;
myNum = 15;

Note: If you assign a new value to an existing variable, it will overwrite the previous value:

Example

int Num = 15;  // Num is 15
Num = 10;  // Now Num is 10

Output Variables

You learned from the output chapter that you can output values/print text with the printf() function:

Example

printf("Hello World!");

In many other programming languages (like PythonJava, and C++), you would normally use a print function to display the value of a variable. However, this is not possible in C:

Example

int Num = 15;
printf(Num);  // Nothing happens

To output variables in C, you must get familiar with something called "format specifiers".


Format Specifiers

Format specifiers are used together with the printf() function to tell the compiler what type of data the variable is storing. It is basically a placeholder for the variable value.

A format specifier starts with a percentage sign %, followed by a character.

For example, to output the value of an int variable, you must use the format specifier %d or %i surrounded by double quotes, inside the printf() function:

Example

int Num = 15;
printf("%d", Num);  // Outputs 15

To print other types, use %c for char and %f for float:

Example

// Create variables
int myNum = 5;             // Integer (whole number)
float myFloatNum = 5.99;   // Floating point number
char myLetter = 'D';       // Character

// Print variables
printf("%d\n", mNum);
printf("%f\n", FloatNum);
printf("%c\n", Letter);

To combine both text and a variable, separate them with a comma inside the printf() function:

Example

int Num = 5;
printf("My favorite number is: %d", Num);

To print different types in a single printf() function, you can use the following:

Example

int Num = 5;
char Letter = 'D';
printf("My number is %d and my letter is %c", Num, Letter);

You will learn more about Data Types in the next chapter.


Add Variables Together

To add a variable to another variable, you can use the + operator:

Example

int x = 5;
int y = 6;
int sum = x + y;
printf("%d", sum);

Declare Multiple Variables

To declare more than one variable of the same type, use a comma-separated list:

Example

int x = 5, y = 6, z = 50;
printf("%d", x + y + z);

You can also assign the same value to multiple variables of the same type:

Example

int x, y, z;
x = y = z = 50;
printf("%d", x + y + z);

C Variable Names

All C variables must be identified with unique names.

These unique names are called identifiers.

Identifiers can be short names (like x and y) or more descriptive names (age, sum, totalVolume).

Note: It is recommended to use descriptive names in order to create understandable and maintainable code:

Example

// Good
int minutesPerHour = 60;

// OK, but not so easy to understand what m actually is
int m = 60;

The general rules for naming variables are:

  • Names can contain letters, digits and underscores
  • Names must begin with a letter or an underscore (_)
  • Names are case sensitive (myVar and myvar are different variables)
  • Names cannot contain whitespaces or special characters like !, #, %, etc.
  • Reserved words (such as int) cannot be used as namesYou can also assign the same value to multiple variables of the same type       
  • You can also assign the same value to multiple variables of the same type:
  • Try it Yourself by w3school.com

Data Types

Data Types

  • As explained in the Variables chapter, a variable in C must be a specified data type, and you must use a format specifier inside the printf() function to display it:

Example

  • // Create variables
    int myNum = 5;             // Integer (whole number)
    float myFloatNum = 5.99;   // Floating point number
    char myLetter = 'D';       // Character

    // Print variables
    printf("%d\n", myNum);
    printf("%f\n", myFloatNum);
    printf("%c\n", myLetter);
    Try it Yourself »

Basic Data Types

  • The data type specifies the size and type of information the variable will store.

    In this tutorial, we will focus on the most basic ones:

    Data Type Size Description
    int 2 or 4 bytes Stores whole numbers, without decimals
    float 4 bytes Stores fractional numbers, containing one or more decimals. Sufficient for storing 7 decimal digits
    double 8 bytes Stores fractional numbers, containing one or more decimals. Sufficient for storing 15 decimal digits
    char 1 byte Stores a single character/letter/number, or ASCII values

Basic Format Specifiers

  • There are different format specifiers for each data type. Here are some of them:

    Format Specifier Data Type Try it
    %d or %i int Try it »
    %f float Try it »
    %lf double Try it »
    %c char Try it »
    %s Used for strings, which you will learn more about in a later chapter Try it »

Constants

Constants

  • When you don't want others (or yourself) to override existing variable values, use the const keyword (this will declare the variable as "constant", which means unchangeable and read-only):

Example

  • const int myNum = 15;  // myNum will always be 15
    myNum = 10;  // error: assignment of read-only variable 'myNum'
    Try it Yourself »

    You should always declare the variable as constant when you have values that are unlikely to change:

Example

Notes On Constants

  • When you declare a constant variable, it must be assigned with a value:

Example

  • Like this:

    const int minutesPerHour = 60;

    This however, will not work:

    const int minutesPerHour;
    minutesPerHour = 60// error

Operators


Operators

Operators are used to perform operations on variables and values.

In the example below, we use the + operator to add together two values:

Example

int myNum = 100 + 50;
Try it Yourself »

Although the + operator is often used to add together two values, like in the example above, it can also be used to add together a variable and a value, or a variable and another variable:

Example

int sum1 = 100 + 50;        // 150 (100 + 50)
int sum2 = sum1 + 250;      // 400 (150 + 250)
int sum3 = sum2 + sum2;     // 800 (400 + 400)
Try it Yourself »

C divides the operators into the following groups:

  • Arithmetic operators
  • Assignment operators
  • Comparison operators
  • Logical operators
  • Bitwise operators

Arithmetic Operators

Arithmetic operators are used to perform common mathematical operations.

Operator Name Description Example Try it
+ Addition Adds together two values x + y Try it »
- Subtraction Subtracts one value from another x - y Try it »
* Multiplication Multiplies two values x * y Try it »
/ Division Divides one value by another x / y Try it »
% Modulus Returns the division remainder x % y Try it »
++ Increment Increases the value of a variable by 1 ++x Try it »
-- Decrement Decreases the value of a variable by 1 --x Try it »

Assignment Operators

Assignment operators are used to assign values to variables.

In the example below, we use the assignment operator (=) to assign the value 10 to a variable called x:

Example

int x = 10;
Try it Yourself »

The addition assignment operator (+=) adds a value to a variable:

Example

int x = 10;
x += 5;
Try it Yourself »

A list of all assignment operators:

Operator Example Same As Try it
= x = 5 x = 5 Try it »
+= x += 3 x = x + 3 Try it »
-= x -= 3 x = x - 3 Try it »
*= x *= 3 x = x * 3 Try it »
/= x /= 3 x = x / 3 Try it »
%= x %= 3 x = x % 3 Try it »
&= x &= 3 x = x & 3 Try it »
|= x |= 3 x = x | 3 Try it »
^= x ^= 3 x = x ^ 3 Try it »
>>= x >>= 3 x = x >> 3 Try it »
<<= x <<= 3 x = x << 3 Try it »

Comparison Operators

Comparison operators are used to compare two values.

Note: The return value of a comparison is either true (1) or false (0).

In the following example, we use the greater than operator (>) to find out if 5 is greater than 3:

Example

int x = 5;
int y = 3;
printf("%d", x > y); // returns 1 (true) because 5 is greater than 3
Try it Yourself »

A list of all comparison operators:

Operator Name Example Try it
== Equal to x == y Try it »
!= Not equal x != y Try it »
> Greater than x > y Try it »
< Less than x < y Try it »
>= Greater than or equal to x >= y Try it »
<= Less than or equal to x <= y Try it »

Logical Operators

Logical operators are used to determine the logic between variables or values:

Operator Name Description Example Try it
&&  Logical and Returns true if both statements are true x < 5 &&  x < 10 Try it »
||  Logical or Returns true if one of the statements is true x < 5 || x < 4 Try it »
! Logical not Reverse the result, returns false if the result is true !(x < 5 && x < 10) Try it »

Sizeof Operator

The memory size (in bytes) of a data type or a variable can be found with the sizeof operator:

Example

int myInt;
float myFloat;
double myDouble;
char myChar;

printf("%lu\n", sizeof(myInt));
printf("%lu\n", sizeof(myFloat));
printf("%lu\n", sizeof(myDouble));
printf("%lu\n", sizeof(myChar));
Try it Yourself »

Note that we use the %lu format specifer to print the result, instead of %d. It is because the compiler expects the sizeof operator to return a long unsigned int (%lu), instead of int (%d). On some computers it might work with %d, but it is safer to use %lu.

If ... Else


Conditions and If Statements

You learned from the operators comparison chapter, that C supports the usual logical conditions from mathematics:

  • Less than: a < b
  • Less than or equal to: a <= b
  • Greater than: a > b
  • Greater than or equal to: a >= b
  • Equal to a == b
  • Not Equal to: a != b

You can use these conditions to perform different actions for different decisions.

C has the following conditional statements:

  • Use if to specify a block of code to be executed, if a specified condition is true
  • Use else to specify a block of code to be executed, if the same condition is false
  • Use else if to specify a new condition to test, if the first condition is false
  • Use switch to specify many alternative blocks of code to be executed

The if Statement

Use the if statement to specify a block of C code to be executed if a condition is true.

Syntax

if (condition) {
  // block of code to be executed if the condition is true
}

Note that if is in lowercase letters. Uppercase letters (If or IF) will generate an error.

In the example below, we test two values to find out if 20 is greater than 18. If the condition is true, print some text:

Example

if (20 > 18) {
  printf("20 is greater than 18");
}
Try it Yourself »

We can also test variables:

Example

int x = 20;
int y = 18;
if (x > y) {
  printf("x is greater than y");
}
Try it Yourself »

Example explained

In the example above we use two variables, x and y, to test whether x is greater than y (using the > operator). As x is 20, and y is 18, and we know that 20 is greater than 18, we print to the screen that "x is greater than y".


The else Statement

Use the else statement to specify a block of code to be executed if the condition is false.

Syntax

if (condition) {
  // block of code to be executed if the condition is true
else {
  // block of code to be executed if the condition is false
}

Example

int time = 20;
if (time < 18) {
  printf("Good day.");
else {
  printf("Good evening.");
}
// Outputs "Good evening."
Try it Yourself »

Example explained

In the example above, time (20) is greater than 18, so the condition is false. Because of this, we move on to the else condition and print to the screen "Good evening". If the time was less than 18, the program would print "Good day".


The else if Statement

Use the else if statement to specify a new condition if the first condition is false.

Syntax

if (condition1) {
  // block of code to be executed if condition1 is true
else if (condition2) {
  // block of code to be executed if the condition1 is false and condition2 is true
else {
  // block of code to be executed if the condition1 is false and condition2 is false
}

Example

int time = 22;
if (time < 10) {
  printf("Good morning.");
else if (time < 20) {
  printf("Good day.");
else {
  printf("Good evening.");
}
// Outputs "Good evening."
Try it Yourself »

Example explained

In the example above, time (22) is greater than 10, so the first condition is false. The next condition, in the else if statement, is also false, so we move on to the else condition since condition1 and condition2 is both false - and print to the screen "Good evening".

However, if the time was 14, our program would print "Good day."


Another Example

This example shows how you can use if..else if to find out if a number is positive or negative:

Example

int myNum = 10// Is this a positive or negative number?

if (myNum > 0)
  printf("The value is a positive number.");
else if (myNum < 0)
  printf("The value is a negative number.");
else
  printf("The value is 0.");

                                                            Special thank w3school What is C? C is a general-purpose programmin...