Les pointeurs

Contenu du snippet

Un petit tut sur les pointeurs ! :)

Source / Exemple :


Une variable un stoké dans la mémoire de votre PC. Chaque emplacement de mémoire et identifié par une adresse.

Un pointer permet de stoker dans une variable l'adresse d'une autre variable.
Les pointers sont très importants en C. Vous verrez par la suite de votre apprentissage l'utilisation.

Comme déclarer un pointer :

Un pointer se déclare comme une variable. Soit que devant il faut rajouter une *
ATTENTION si vous déffinissez un pointer de type float il ne pourra contenir qu'une adresse d'une variable du même type ! 

Exemple de déclaration d'un pointer "p_var" et d'une variable "var" de type "float"
	
	float *p_var, var;

Maintenant il faut initialisé ce pointer en lui donnant l'adresse de la variable :

	p_var = &var;

Nous allons écrire un petit programme qui déclare un pointer est une varaible et affiche celle-ci de deux façon :

	// START //

	#include <stdio.h>

	float *p_var, var;
	var = 121.54;

	p_var = &var;

	// Affichage de la variable
	printf("Première facon : %lf\n", var);
	printf("Deuxième facon : %lf\n", *p_var);
	
	// END // 

On appelle la première façon un accés direct à la mémoire,
et la deuxieme façon un accés         indirect à la mémoire.

Les tableaux :

Les pointers sont très utile pour les tableau ! Car en fait les index des tableau ne sont pas autre chose que des pointer !

Exemple de déclaration et d'initialisation avec les tableaux :
	
	int tableau[100], &p_tableau;
	p_tableau = tableau;
	
Maintenant voici un petit prog. Il affiche les adresse déléments successifs d'un tableau

// START //

#include <stdio.h>

int i[10], x;
float f[10];
double d[10];

main()
{
	printf("\t\tInteger\t\tFloat\t\tDouble");
	printf("\n================================");
	printf("======================");

	for(x=0; x<10; x++)
	printf("\nElement %d:\t%ld\t\t%ld\t\%ld", x, &i[x], &f[x], &d[x]);

	printf("\n================================");
	printf("======================\n\n");

	return 0;
}

// END //

Passez des pointeurs en paramètres :
------------------------------------

Imaginons une fonction :
	int GetString(char *szStr) { }
	
	Elle doit retourner le nombre de caractères qu'elle aura mis dans szStr.
	
	int GetString(char *szStr) {
		strcpy(szStr, "Bonjour");
		return 7;
	}
	
	Dans un programme on peut faire :
	char *szbuff;
	
	szbuff = (char *)malloc(255);
	if (szbuff != NULL) {
	
		printf("Nombre de caractères : %i\n", GetString(szbuff));
		printf("Chaine mise : %s\n\n", szbuff);
	
		free(szbuff);	
	} else {
		printf("Erreur d'allocation.");
	}

Voilà pour les pointeurs ! 

Amusez-vous bien ! :))

Conclusion :


Amusez-vous bien ! :))

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.