Consultez gratuitement nos différents cours

  • Les vecteurs (Mathématique)

      Notion de direction et sens Direction Une droite représente une direction. Étant donné une droite (AB), toute droite parallèle à (AB) détermine la même direction que (AB) (CN) et (EF) détermine la même direction que (AB). Sens Soit (AB) une droite Le sens de parcours de A vers B est le sens du couple (A,B) Le sens de parcours de B vers A est le sens du couple (B,A)   Notion de vecteur Soit A et B deux points du plan Le segment [AB] fléché en B est le vecteur AB. Les caractéristiques d'un vecteur Un...

    Lire la suite : Les vecteurs

  • Qu'est que la géographie? (Géographie)

    La géographie est la science qui décrit et explique les différents aspects de la terre. Le paysage géographique se distingue par ses aspects physiques et humains. La géographie est une science qui a pour objet la description de l'explication de la nature (la terre) sur les plans physiques, humains et économiques. Les grands domaines de la géographie La géographie comprend trois grandes branches: La géographie physique Elle étudie les milieux et leur nature et s'apparente aux sciences...

    Lire la suite : Qu'est que la géographie?

  • Energie: transformation - conservation (Electronique)

      Energie: ses différentes formes, sa conservation Quantité de chaleur, chaleur massique, capacité calorifique Si un récipient contenant de l'eau est approché du feu, la température de l'eau s'élève. On considère que la cause de cette élévation de température est l'absorption par l'eau d'une certaine quantité de chaleur. La quantité de chaleur Q absorbée par un corps qui s'échauffe de Ø°1C à Ø°2C est proportionnelle à la masse m de ce corps et à l'élévation de température Ø2-Ø1. On a donc: Q =...

    Lire la suite : Energie: transformation - conservation

  • Travaux dirigés (Réseaux informatiques)

    Exercice 1 Faire une étude comparative entre les protocoles TCP et UDP. Faire ressortir les ressemblances et les divergences. Précisez leurs utilisations respectives. Exercice 2 Selon vous les routeurs interviennent-ils dans les informations véhiculées dans le protocole TCP? Exercice 3 Les ports et les services: Identifiez les différents ports ainsi que les services offerts dans un environnement TCP/IP. Utilisez le système d'exploitation Windows XP. Correction de l'exercice 2 Lors du transport des...

    Lire la suite : Travaux dirigés

Eléments de base du langage C

Index de l'article


Transmission des paramètres

 

En C, les arguments sont transmis par valeur.

Exemple

 

Ecrire un programme en C qui permet de permuter les valeurs de deux variables.

 

#include< stdio.h >

 

main()

 

{

 

void echange(int, int),

 

int a=1, b=20;

 

printf("Avant: %d %d", a,b);

 

echange(a,b);

 

printf("Après: %d %d", a,b);

 

retrurn 0;

 

}

 

void echange(inta, intb)

 

{

 

int c, b, a;

 

printf("Avant échange: %d %d", a,b);

 

c=a;

 

a=b;

 

b=c;

 

printf("Après échange: %d %d", a,b);

 

}

 

L'exécution de ce programme produit le résultat suivant:
avant: 10 20
avant échange: 10 20
après échange: 20 10
après: 10 20


On constate que lors de l'appel "échange reçoit des valeurs mais en revenant au programme principal aucune modification n'a été effectuée sur les valeurs transmises. Cela est dû à la transmission par valeur qui ne fait qu'une simple copie des valeurs utilisées.
Ce problème de permutation de valeur doit être résolu en utilisant la transmission par adresse.
En C, la transmission par adresse peut être simulée en utilisant un pointeur. Ceci permet de travailler sur le contenu de l'adresse.

 

#include

main()

 

{

 

void echange(int *ad1, int *ad2);

 

int a=10, b=20;

 

printf("avant: %d %d", a,b);

 

echange(&a, &b);

 

printf("après %d %d", a,b);

 

return 0;

 

}

 

void echange(int *ad1, int *ad2)

 

{

 

int c;

 

printf("avant échange: %d %d", *ad1, *ad2);

 

c=*ad1;

 

*ad1=*ad2;

 

*ad2=c;

 

printf("après échange %d %d", *ad1, *ad2);

 

}