devstory

Le Tutoriel de programmation C pour débutant

  1. Ce qui est nécessaire pour commencer avec C/C++?
  2. Différencier C et C++
  3. Créer un projet pour commencer avec C
  4. Les caractéristiques de C et l'attention dans la pratique
  5. La structure d'un programme C
  6. Des types de données dans C
  7. La commande dans C (if - else if - else)
  8. La commande Switch
  9. La boucle dans C
  10. Tableau dans C
  11. Le pointeur (Pointer)
  12. Fonction (Function)

1. Ce qui est nécessaire pour commencer avec C/C++?

Dans des documents de C/C++ sur le site web o7planning, nous utilisons Eclipse IDE. Vous devez installer et configurer Eclipse et l'environnement C/C++ avant de commencer. Vous pouvez suivre des instructions à:

2. Différencier C et C++

Vous avez besoin d'un vue d'ensemble pour reconnaître C et C++.
C lest un langage prédécesseur et langage procédural, il est facile d'être déployé et exécuté sur les systèmes d'exploitation. C++ est né après l'expansion de C et il apporte le concept de programmation orientée objet, C est la base de C++, et C++ ne sont pas pour remplacer C, ses bibliothèques sont considérablement développées.
Programmation procédurale: Les fichiers sources (Contenant votre code) conteniront les fonctions. Pendant ce temps, le fichier source orienté objet contient une classe dans laquelle contient des méthodes. Pour appeler une méthode dans une classe, vous devez créer une instance de la classe, puis appeler la méthode à travers cet objet, alors qu'avec la procédure orientée vous pouvez appeler la fonction directement.
Dans ce document, je vous montrera comment travailler sur C. Mais C++ sera discucté dans un autre document.

3. Créer un projet pour commencer avec C

Si vous travaillez avec: Windows 64bit + Eclipse 64bit + Java64bit, vous devez ouvrir Eclipse avec l'authorité de l'Administrator, il se produit un problème qu'Eclipse n'imprime pas le message sur l'écran Console en cas de fonctionnement en mode normale.
  • File/New/Other..
Dans ce document, je vous donnerai des instructions comment programmer C (C++ sera introduit dans un autre document). Bien que le projet que nous créons ici soit C++, mais nous n'utilisons que des bibliothèques de C.
Saisissez le nom du Project:
  • CBasicTutorial
Le projet a été créé, actuellement le code (code) de cet exemple HelloWorld est C++. Mais il n'est pas nécessaire de s'en préoccuper.
Compilez le projet (Compile project).
Le projet a été compilé avec succès.
Ensuite, vous devez configurer pour exécuter le projet directement sur Eclipse, cette tâche est très importante.
L'exécution de l'exemple HelloWorld
Ou:
Les résultats de l'exemple:
OK! Tout fonctionne très bien.

4. Les caractéristiques de C et l'attention dans la pratique

Lorsqu'un programme C est exécuté, il cherchera la fonction main() pour exécuter, telle que l'exécution de la fonction main() de l'exemple HelloWorld ci-dessus.

Un programme C peut contenir plusieur fichiers source, chaque fichier source peut avoir plusieurs fonctions. Cependant, il ne permet qu'une seule fonction main() de votre projet entier.
Au ci-dessus, vous venez de créer un fichier CBasicTutorial.cpp avec une fonction main(), maintenant vous créez une autre fichier pour pratiquer, tels que PrimitiveExample.cpp et la fonction main() vous devez renommer la fonction main() du fichier CBasicTutorial.cpp en un autre nom pour qu'il ne se produise pas de conflit et que vous puissiez le compiler, ensuite vous pouvez pratiquer ce qu'il a écrit dans PrimitiveExample.cpp.
À mon avis, lorsque vous pratiquez, vous devriez sélectionner de renommer comme suivant:
  • CBasicTutorial.cpp
    • main() ==> mainCBasicTutorial()

5. La structure d'un programme C

Je créera un nouveau fichier cpp pour illustrer et expliquer de la structure du programme C.
Sur Eclipse, sélectionnez:
  • File/New/Other...
Saisissez:
  • Source file: MyFirstExample.cpp
  • Template: Default C source temple
Le fichier source a été créé, il est vide.
Nous allons écrire le code de ce fichier source:

Remarque: Changez le nom de la fonction main du fichier source CBasicTutorial.cpp en mainCBasicTutorial parce qu'un projet de C ne permet qu'une fonction main sur le projet entier.

MyFirstExample.cpp
// Déclarer de l'utilisation de la bibliothèque d'entré et de sortie standard stdio.h
// (Standard IO / Standard Input Output)
#include<stdio.h>

int main() {

	// printf est une fonction de la bibliothèque stdio.h
	// C'est une fonction qui sert à imprimer une ligne sur l'écranConsole.
	// \n est le caractère de nouvelle ligne.
	printf("Hello!, This is your first C example.\n");

	// Imprimer le message, l'application terminera.
	printf("Exit!");

	// Cette fonction renvoie 0.
	return 0;

}
L'exécution de l'exemple:
Les résultats:

Remarque: Il existe certaines fonctions dans des bibliothèques conio.h de C qui ne sont pas fournites dans C++. Par exemple getch() - qui est à l'origine une fonction pour mettre en pause le programme et attendre jusqu'à ce que l'utilisateur saisit un nouveau caractère pour continuer à s'exécuter. Donc, dans ce tutoriel, j'essaie de ne pas utiliser cette fonction dans les exemples.

#include<conio.h>

int main() {

	// Faites quelques choses ici ....
	// Arrêtez le programme ici, attendez jusqu'à que l'utilisateur pousse n'importe caractère.
	// (Cette fonction n'est pas complètement soutenue)
	getch();

	// Faites quelques choses ici.
}

6. Des types de données dans C

Des types de données entières
Type
Storage size
Value range
Format
char
1 byte
-128 to 127 or 0 to 255
%c
unsigned char
1 byte
0 to 255
%c
signed char
1 byte
-128 to 127
%s
int
2 or 4 bytes
-32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
%d
unsigned int
2 or 4 bytes
0 to 65,535 or 0 to 4,294,967,295
%u
short
2 bytes
-32,768 to 32,767
unsigned short
2 bytes
0 to 65,535
long
4 bytes
-2,147,483,648 to 2,147,483,647
%ld
unsigned long
4 bytes
0 to 4,294,967,295
Les types à point flottant (Floating point type)
Type
Taille de stockage
Plage de valeur
Précision
float
4 octets
1.2E-38 to 3.4E+38
6 décimales
double
8 octets
2.3E-308 to 1.7E+308
15 décimales
long double
10 octets
3.4E-4932 to 1.1E+4932
19 décimales
Exemple
PrimitiveExample.cpp
// Déclarer pour l'usage de la bibliothèque de l'entrée standard stdio.h
// (Standard IO / Standard Input Output)
#include <stdio.h>

// Déclarer pour l'usage de la bibliothèque float.h
#include <float.h>


int main() {

	// La fonction sizeof(type)
	// renvoie le nombre d'octet nécessaire pour stocker des types de données.
	printf("Storage size for float : %d \n", sizeof(float));

	// FLT_MIN est constant, la valeur minimale du type de données float.
	// Cette constante est définie dans la bibliothèque float.h
	printf("Minimum float positive value: %E\n", FLT_MIN);

	// FLT_MAX est constant, la valeur maximale du type de données float.
	// Cette constante est définie dans la bibliothèque float.h
	printf("Maximum float positive value: %E\n", FLT_MAX);

	// FLT_DIG est constant, le nombre maximal de fraction décimale.
	// Cette constante est définie dans la bibliothèque float.h
	printf("Precision value: %d\n", FLT_DIG);

	return 0;

}
L'exécution de l'exemple:

7. La commande dans C (if - else if - else)

if une commande est utilisée pour vérifier la condition en C. Par exemple: Si a> b, faites quelque chose ....
Les oppérateurs de comparaison communs:
Opérateur
Signification
Exemple
>
Supérieur
5 > 4 est vrai (true)
<
Inférieur
4 < 5 est vrai (true)
>=
Plus grand ou égal
4 >= 4 est vrai (true)
<=
Moins ou égal
3 <= 4 est vrai (true)
==
Égal
1 == 1 est vrai (true)
!=
Pas égal à
1 != 2 est vrai (true)
&&
Et
a > 4 && a < 10
||
Ou
a == 1 || a == 4
// Syntaxe
if ( condition ) {

	// Faites quelque chose ici.
}
Exemple:
// Exemple 1:
if ( 5 < 10 ) {
	printf( "Five is now less than ten");
}

// Exemple 2:
if ( true ) {
	printf( "Do something here");
}
La structure complềt de la commande If-Else if-Else:
// Notez qu'il n'y aura qu'au maximum un bloc peut être exécuté.
// Le programme testera des conditions de haut en bas.
// Lorsqu'il rencontre une condition dans laquelle le bon bloc sera exécuté,
// et le programme ne repose pas sur les conditions restantes.
...

// Si la condition 1 est vraie alors ...
if ( condition1) {

	// Faites quelque chose lorsque la condition 1 est vraie.
}
// Sinon, si la condition 2 est vraie alors ....
else if( condition2 ) {

	// Faites quelque chose lorsque la condition 2 est vraie.
	// (La condition est fausse).
}
// Sinon, si la condition N est vraie, alors ...
else if( conditionN ) {
	// Faites quelque chose lorsque la condition 2 est vraie
	// (Les conditions ci-dessus sont fausses).
}
// Les cas restants.
else {
	// Faites quelque chose ici.
}
Exemple:
IfElseExample.cpp
// Déclarez d'utiliser la bibliothèque IO standard.
// (Standard IO / Standard Input Output)
#include <stdio.h>

int main_IfElseExample() {

	// Indiquez un nombre représentant votre âge.
	int age;

	printf("Please enter your age: \n");

	// Parfois, printf n'imprime pas immédiatement votre message dans Console.
	// En utilisant fflush (stdout) pour imprimer immédiatement le message dans la Console.
	// Remarque: stdout est une variable de flux (stream) qui est imprimée sur l'écran.
	// (Il est défini dans la bibliothèque stdio.h)
	fflush (stdout);

	// La fonction scanf vous attendra pour saisir un texte depuis le clavier
	// (Et appuyez sur Enter pour terminer).
	// Il analysera pour prendre un nombre (spécifier par le paramètre %d)
	// et attacher à la variable age.
	scanf("%d", &age);

	// Vérifiez si age est inférieur à 80 alors  ...
	if (age < 80) {
		printf("You are pretty young");
	}

	// Sinon, si l'âge est entre 80 et 100 alors
	else if (age >= 80 && age <= 100) {
		printf("You are old");
	}
	// Sinon (les cas restants)
	else {
		printf("You are verry old");
	}

	return 0;
}
L'exécution de l'exemple:
Le programmen imprime le texte "Veillez saisir un numéro", vous saisissez 70 et appuyez Enter.
Les résultats:
Vous pouvez exécuter l'exemple et saisir les autres numéros et voir le résultat.

8. La commande Switch

La syntaxe de la commande switch:
// Utilisez switch pour vérifier la valeur d'une variable.
switch ( a_variable ) {
	case value1:
		// Faites quelque chose ici, si la valeur de variable == value1
		break;
	case value2:
		// Faites quelque chose ici, si la valeur de variable == value2
		break;

	default:
		// Faites quelque chose ici,
		// si la valeur de variable n'appartient pas dans les valeurs indiquées ci-dessus.
		break;
}
SwitchExample.cpp
#include <stdio.h>

int main() {

	// Demandez au utilisateur de choisir une option.
	printf("Please select one option:\n");

	printf("1 - Play a game \n");
	printf("2 - Play music \n");
	printf("3 - Shutdown computer \n");

	fflush (stdout);

	// Déclarew une variable 'option'.
	int option;

	// La fonction scanf vous attendra pour que vous saisissiez à partir du clavier
	// (ensuite appuyez enter pour terminer).
	// Elle scannera afin de prendre un numéro (Spéciser par le paramètre %d)
	// Et convertira en nombre entier (integer) et affichera à la variable 'option'.
	scanf("%d", &option);

	// Vérifiez de la valeur de variable 'option'.
	switch (option) {

	case 1:
		printf("You choose to play the game \n");
		break;
	case 2:
		printf("You choose to play the music \n");
		break;
	case 3:
		printf("You choose to shutdown the computer \n");
		break;
	default:
		printf("Nothing to do...\n");
		break;
	}

	fflush(stdout);

	return 0;

}
Le résultat lors de l'exécution de l'exemple (au cas où vous saisissez le nombre 2 et appuyez Enter).
Remarque:
Vous vous demandez, break dans le bloc de 'case' signifie?

break dans ce cas a voulu indiquer que le programme qui sort switch. Dans le cas où vous n'utilisez pas break le programme continuera d'exécuter des blocs dans 'case' ci-dessous (ou y compris le bloc par défault) jusqu'à ce que la valeur de la variablebreak dans ce cas soit différente de la valeur de 'case'.
Considérez une illustration:
SwitchExample2.cpp
#include <stdio.h>

int main() {

	// Déclarez la variable 'option' et attachez-lui la valeur de 3.
	int option = 3;

	printf("Option = %d \n", option);

	// Vérifiez la valeur de 'option'
	switch (option) {

	case 1:
		printf("Case 1 \n");
		break;
	case 2:
		printf("Case 2 \n");
		// No break
	case 3:
		printf("Case 3 \n");
		// No break
	case 4:
		printf("Case 4 \n");
		// No break
	case 5:
		printf("Case 5!!! \n");
		break;
	default:
		printf("Nothing to do...\n");
		break;
	}

	fflush (stdout);

	return 0;

}
L'exécution de l'exemple:

9. La boucle dans C

Des boucles sont utilisées à répéter un bloc de code. Être capable d'avoir votre programme à plusieurs reprises exécuter un bloc de code est l'une des tâches les plus élémentaires mais utiles dans la programmation.
C soutient 3 types de boucles différentes:
  • FOR
  • WHILE
  • DO WHILE
La boucle FOR
La syntaxe de la boucle FOR:
// variable_initialization: Initialiser une variable.
// condition: La condition.
// variable_update: Mettre à jour de nouvelle valeur pour la variableCập nhập giá trị mới cho biến.
for ( variable_initialization; condition; variable_update ) {
	// Các code cần thực thi khi điều kiện còn đúng.
}
Exemple:
// Exemple 1:
// Créez une variable x et attachez-lui de la valeur de 0.
// La condition de la vérification est que x < 5.
// Si x < 5 est vraie, exécutez le bloc.
// Après chaque itération (iteration) la valeur x sera mise à jour,
// Dans cet exemple, la valeur de x sera ajoutée 1.
for (int x = 0; x < 5; x = x + 1) {
	// Faites quelque chose ici si x < 5 est vraie.
}

// Exemple 2:
// Créez une variable x et attachez-lui une valeur initiale de 2
// La condition de vérification est que x < 15
// Si x < 15 est vraie, exécutez le bloc
// Après chaque itération (iteration) augmentez la valeur de x par 3.
for (int x = 2; x < 15; x = x + 3) {
	// Faites quelque chose ici si x < 15 vraie.
}
ForLoopExample.cpp
#include <stdio.h>

int main() {

	printf("For loop example\n");

	// Parfois, l'utilisation de printf n'imprime pas immédiatement votre message sur Console.
	// L'utilisation de fflush(stdout) assure d'imprimer le message immédiatement sur Console.
	// Remarque: stdout est une variable dans le flux (stream) qui est imprimé sur Console
	// (Elle est définie dans la bibliothèque stdio.h).
	fflush (stdout);

	// Déclarez une variable x et attachez- lui la valeur initiale de 2.
	// La condition de vérification est x < 15
	// Si x < 15 est vraie, exécutez ce bloc.
	// Augmentez la valeur de la variable x de 3 après chaque itération (iteration).
	for (int x = 2; x < 15; x = x + 3) {
		printf("\n");
		printf("Value of x = %d \n", x);
		fflush(stdout);
	}
	return 0;

}
L'exécution de l'exemple:
La boucle WHILE
La syntaxe de la boucle WHILE:
while ( condition ) {

	// Lorsque la condition est vraie, exécutez ce bloc.
}
Exemple:
// Exemple 1:
// Déclarez une variable x.
int x = 2;

while ( x < 10) {
	// Faites quelque chose ici lorsque x < 10 est vraie.
	// ....
	// Mettez à jour une nouvelle valeur pour la variable x.
	x = x + 3;
}
WhileLoopExample.cpp
#include <stdio.h>

int main() {

	printf("While loop example\n");

	fflush (stdout);

	// Déclarez la variable x et attachez- lui une valeur de 2
	int x = 2;

	// La condition de la vérification est x < 10
	// Si x < 10 est vraie, exécutez le bloc.
	while (x < 10) {
		printf("Value of x = %d \n", x);

		x = x + 3;
		fflush(stdout);
	}
	return 0;

}
L'exécution de l'exemple:
La boucle DO WHILE
La syntaxe de la boucle DO-WHILE
// Les caractéristiques de la boucle 'do-while' seront qu'elle exécute le bloc au moins une fois.
// Après chaque itération (iteration), elle vérifie les conditions de l'itération suivante.
do {

	// Faites quelque chose ici.
}while ( condition );  // Note: Need ';'.
DoWhileLoopExample.cpp
#include <stdio.h>

int main() {

	printf("Do-While loop example\n");

	fflush (stdout);

	// Créez une variable x et attachez- lui une valeur de 2.
	int x = 2;

	// Les caractéristiques de la boucle 'do-while' seront qu'elle exécute le bloc au moins une fois.
	// Ensuite, elle vérifie les conditions
	// si continue d'exécuter ce bloc ou pas.
	do {
		printf("Value of x = %d \n", x);

		x = x + 3;
		fflush(stdout);
	} while (x < 10); // Note: ==> Need ';'

	return 0;

}
L'exécution de l'exemple:
La commande break dans la boucle
break est une commande qui peut être incluse dans le bloc de la boucle. C'est la commande pour terminer la boucle inconditionnellement.
BreakExample.cpp
#include <stdio.h>

int main() {

	printf("Break example\n");

	fflush (stdout);

	// Créez une variable x et attachez-lui une valeur de 2.
	int x = 2;

	while (x < 15) {

		printf("----------------------\n");
		printf("x = %d \n", x);

		// Vérifiez si x = 5, sortez de la boucle.
		if (x == 5) {
			break;
		}
		// Augmentez la valeur de x de 1 (Forme abrégée x = x + 1).
		x++;
		printf("x after ++ = %d \n", x);

	}
	return 0;

}
L'exécution de l'exemple:
La commande continue dans la boucle
continue est une commande qui peut être incluse dans une boucle, le programme ignorera la ligne de commande dans le bloc et sous de la commande continue et commencera une nouvelle commande lorsqu'il la voir.
ContinueExample.cpp
#include <stdio.h>

int main() {

	printf("Continue example\n");

	fflush (stdout);

	// Créez une variable x et attachez-lui une valeur de 2.
	int x = 2;

	while (x < 7) {

		printf("----------------------\n");
		printf("x = %d \n", x);

		// % est l'opérateur qui renvoie le reste.
		// (Remainder operator).
		// Si x est pair, ignorez la ligne de commande 'continue' ci-dessous, ensuite, commencez une nouvelle boucle (s'il y en a).
		if (x % 2 == 0) {
			// Augmentez la valeur de x de 1 (Forme abrégée cho x = x + 1;).
			x++;
			continue;
		} else {
			// Augmentez la valeur de x de 1 (Forme abrégée x = x + 1;).
			x++;
		}
		printf("x after ++ = %d \n", x);

	}
	return 0;

}
L'exécution de l'exemple:

10. Tableau dans C

Tableau à une dimension
Ce sont les illustrations du tableau unidimensionnel (tableau à une dimension) avec 5 éléments, les éléments sont indexés de 0 à 4.
La syntaxe pour déclarer un tableau à une dimension:
// Manière 1:
// Déclarez un tableau des numéros int, précisez les éléments.
int years[] = { 2001, 2003, 2005, 1980, 2003 };

// Manière 2:
// Déclarez un tableau de 5 éléments,
// spécifiez la valeur de 3 premiers éléments.
int age[5] = { 20, 10, 50 };

// Manière 3:
// Déclarez une tableau de float, précisez le nombre des éléments.
// (Taille 3).
float salaries[3];
ArrayExample1.cpp
#include <stdio.h>

int main() {

	// Manière 1:
	// Déclarez un tableau avec des éléments.
	int years[] = { 2001, 2003, 2005, 1980, 2003 };

	// Imprimez le nombre d'octet nécessaire à stocker le type int.
	printf("Sizeof(int) = %d \n", sizeof(int));

	// Le nombre d'octet nécessaire pour stocker ce tableau.
	printf("Sizeof(years) = %d \n", sizeof(years));

	int arrayLength = sizeof(years) / sizeof(int);

	printf("Element count of array years = %d \n\n", arrayLength);

	// Utilisez la boucle for pour imprimer les éléments du tableau.
	for (int i = 0; i < arrayLength; i++) {
		printf("Element at %d = %d \n", i, years[i]);
	}

	fflush (stdout);

	// Manière 2:
	// Déclarez un tableau dont la taille est 3.
	float salaries[3];

	// Attribuez des valeur aux éléments.
	salaries[0] = 1000;
	salaries[1] = 1200;
	salaries[2] = 1100;

	return 0;

}
L'exécution de l'exemple:
Tableau à deux dimensions
Celui-ci est illustré un tableau à deux dimensions
La syntaxe pour déclarer un tableau de deux dimensions:
// Déclarez un tableau à deux dimensions qui indique des éléments.
// 3 lignes & 5 colonnes
int a[3][5] = { { 1, 2, 3, 4, 5 },
		        { 0, 3, 4, 5, 7 },
				{ 0, 3, 4, 0, 0 } };

// Déclarez un tableau de deux dimensions,
// précisez le nombre de lignes, le nombre de colonnes.
int a[3][5];
ArrayExample2.cpp
#include <stdio.h>

int main() {

	// Déclarez un tableau à deux dimensions (3 lignes, 5 colonnes)
	int a[3][5] = { { 1, 2, 3, 4, 5 }, { 0, 3, 4, 5, 7 }, { 0, 3, 4, 0, 0 } };

	// Utilisez une boucle for afin d'imprimer les éléments du tableau.
	for (int row = 0; row < 3; row++) {
		for (int col = 0; col < 5; col++) {
			printf("Element at [%d,%d] = %d \n", row, col, a[row][col]);
		}
	}

	fflush (stdout);

	return 0;
}
L'exécution de l'exemple:

11. Le pointeur (Pointer)

Un pointeur (Pointer) est une variable dont la valeur est l'adresse d'une autre variable, c'est-à-dire l'adresse directe de l'emplacement de la mémoire. Comme toute variable ou constante, vous devez déclarer un pointeur avant de pouvoir l'utiliser pour stocker n'importe quelle adresse de variable. La forme générale d'une déclaration de variable de pointeur est:
type *variable-name;
Exemple:
// Déclarez un type de variable int.
int var = 120;

// Déclarez un pointeur (pointer) (pointe à l'adresse du type int).
int *ip;

// Attribuez une valeur de ip (pointe à l'adresse de la variable 'var').
ip = &var;

// L'utilisation * pour accéder à la valeur de variable à laquelle le pointeur pointe.
int var2 = *ip;
PointerExample.cpp
#include <stdio.h>

int main() {

	// Déclarez une variable
	int var = 120;

	// Déclarez un pointeur (Pointer).
	int *ip;

	// Attribuez l'adresse de la variable 'var' au pointeur.
	ip = &var;

	// Imprimez l'adresse de la variable 'var'.
	printf("Address of var variable: %x \n", &var);

	// Imprimez l'adresse stockée dans la variable 'ip'.
	printf("Address stored in ip variable: %x \n", ip);

	// Accédez à la valeur de la variable à laquelle le pointeur indique.
	printf("Value of *ip variable: %d\n", *ip);

	fflush (stdout);

	int var2 = *ip;

	return 0;

}
NULL Pointer
NULL est une constante prédéfinie dans certaines bibliothèques de C. Lorsque vous déclarez un pointeur sans lui attribuer une valeur spécifique, il indiquera des zones de mémoire aléatoires. Dans certaines situations, vous pouvez déclarer le pointeur et lui attribuer directement NULL. Voyons un exemple:
NULLPointerExample.cpp
#include <stdio.h>

int main() {

	// Déclarez un pointeur (Pointer).
	// N'attribuez aucunne valeur au ce pointeur.
	// (Il indique par hasard une certaine région de mémoire).
	int *pointer1;

	// Imprimez de l'adresse du pointer1
	printf("Address of pointer1 is %x \n", pointer1);

	// Vérifiez si pointer1 n'est pas NULL.
	if (pointer1) {
		// Imprimez de la valeur du zone de mémoire auquel le pointer1 indique.
		printf("Value of *pointer1 is %d \n", *pointer1);
	}

	// Déclarez un pointeur (Pointer).
	// Indiquez à NULL (Indiquez à rien).
	int *pointer2 = NULL;

	// Imprimez l'adresse de pointer2.
	printf("Address of pointer2 is %x \n", pointer2);

	// Si pointer2 est NULL, imprimez le message.
	if (!pointer2) {
		printf("pointer2 is NULL");
	} else {
		// REMARQUE:
		// Si pointer2 NULL accède à la valeur de *pointer2
		// Il se produira d'erreur et le programme sera arrêté.
		printf("Value of *pointer2 is %d \n", *pointer2);
	}

	fflush (stdout);

	return 0;
}
L'exécution de l'exemple:

12. Fonction (Function)

  • TODO