Accueil

Web

FaceBook

Telechargement

Contact

 

Ajouter aux Favoris

    Bienvenue ! 25/04/2024 @ 18:52:19 - IP : 3.135.219.166 -



Cours du langage C - ZNsoft Tutorial
 




 

Microsoft

Télécharger

SQL Server 2012

Pinpoint

Visual Studio

Choisir son PC

 
 

Developpement

Visual Basic

Langage C

Java

Assembleur

Delphi

SQL

Python

WinDev

 
 

Systèmes OS

Ms Dos

Windows 9.x

Windows Nt

Windows Vista

Unix

Linux

Mac Os

 
 

Conception Web

PHP

ASP

Html

XmL

Flash Adobe

Director Adobe

WebDev

Java Script

 




Livre GRATUIT:
Livre gratuit pour maitriser Google Docs



 
 

 

Sommaire :


Introduction - Les opérateurs - les instructions - Les fonctions - Les pointeurs

Les tableaux et les pointeurs en lanage C

 

Cours du langage C pour les débutants

 

 

Les Pointeurs et les Tableaux

Développer et déployer facilement vos sites web

Télécharger gratuitement Office 2013

Héberger votre site web sur des serveurs gratuits

Visual Studio 2013

Télécharger et apprenez gratuitement

Trucs et Astuces

Découvrez Windows 8.1 et télécharger le gratuitement

 

Un pointeur, en C comme en PASCAL, est une adresse permettant de désigner un objet (une variable ou une fonction) en mémoire centrale.

Par extension, on appelle pointeur la variable qui contient cette adresse.

Pointeurs et adresses :

Un pointeur définissant l'adresse d'un objet, l'accès à cet objet peut alors être réalisé par une indirection sur le pointeur.

· L'opérateur unaire & fournit l'adresse de l'objet opérande (qui doit donc être une value2). On dit aussi que cet opérateur est l'opérateur de .

· L'opérateur unaire * considère son opérande comme un pointeur et retourne l'objet pointé par celui-ci. On dit aussi que cet opérateur est l'opérateur d'indirection.

Exemples :

int X, Y;

/* Soit PX un pointeur sur des int */

PX = &X; /* PX <- l'adresse de X */

Y = *PX; /* Y <- l'objet pointé par PX (ie X) */

Ceci équivaut donc à : Y = X;

Opérations sur les pointeurs :

La valeur NULL, est une valeur de pointeur, constante et prédéfinie dans stddef.h. Elle vaut 0 et signifie "Aucun objet". Cette valeur peut être affectée à tout pointeur, quel que soit son type.

· En ce cas, ce pointeur ne pointe sur rien...

· Bien entendu, l'utilisation de cette valeur dans une indirection provoquera une erreur d'exécution.

L'affectation d'un pointeur à un autre n'est autorisée que si les 2 pointeurs pointent le même type d'objet (ie ont le même type).

Exemple :

P = NULL;

P = Q; /* P et Q sont de pointeurs sur le même type */

P = 0177300; /* illégal */

P = (int *) 0177300; /* légal */

L'incrémentation d'un pointeur par un entier n est autorisée. Elle ne signifie surtout pas que l'adresse contenue dans le pointeur est incrémentée de n car alors cette adresse pourrait désigner une information non cohérente : être à cheval sur 2 mots par exemple...

L'incrémentation d'un pointeur tient compte du type des objets pointés par celui-ci : elle signifie "passe à l'objet du type pointé qui suit immédiatement en mémoire". Ceci revient donc à augmenter l'adresse contenue dans le pointeur par la taille des objets.

Comparaison de pointeurs :

Il est possible de comparer des pointeurs à l'aide des relations habituelles : < <= > >= == !=

Un pointeur peut être comparé à la valeur NULL.

Soustraction de pointeurs :

La différence de 2 pointeurs est possible, pourvu qu'ils pointent sur le même type d'objets. Cette différence fournira le nombre d'unités de type pointé, placées entre les adresses définies par ces 2 pointeurs.

Pointeurs et tableaux :

On rappelle que la déclaration d'un tableau dans la langage C est de la forme : int Tab[10];

En fait, cette déclaration est du "sucre syntaxique" donné au programmeur. En effet, de façon interne, elle entraine :

· La définition d'une valeur de pointeur sur le type des éléments du tableau, cette valeur est désignée par le nom même du tableau (Ici Tab)

· La réservation de la place mémoire nécessaire au 10 éléments du tableau, alloués consécutivement. L'adresse du premier élément (Tab[0]) définit la valeur du pointeur Tab.

Exemple !int *Ptab, Tab[10];

POINTEURS ET TABLEAUX MULTIDIMENSIONNELS

Un tableau unidimensionnel peut se représenter grâce à un pointeur (le nom du tableau) et un décalage (l’indice). Un tableau à plusieurs dimensions peut se représenter à l'aide d'une notation similaire, construite avec des pointeurs.

Par exemple, un tableau de dimension 2, est en fait un ensemble de deux tableaux à une seule dimension. Il est ainsi possible de considérer ce tableau à deux dimensions comme un pointeur vers un groupe de tableaux unidimensionnels consécutifs. La déclaration correspondante pourra s’écrire de la manière suivante:

type-donnée (*varpt)[expression 2];

au lieu de la déclaration classique:

type-donnée tableau [expression l][expression 2];



Déposez votre CV
lien de téléchargement direct
50 tirages offerts à l'inscription chez myPIX.com!
Dépot de CV gratuit sur Touslesemplois
Logiciel de référencement automatique

 

Devenez membre ZNsoft : La communauté Informatique

Cours -  Etudiants -  Concours -  Congrès -  Téléchargement -  Formations


_________________________________________________________________________________________________________
Qui sommes-nous ? | Contact | | Inviter un ami | Soutenir ZNsoft | Revue de press | Références
ZNsoft Corporation, Tous Droits Réservés © 2002/ 2024 ZNsoft RSS
  Dernière mise à jour : 22/04/2024