Bonjour,

J'ai un peu de mal avec les chaines de caractère, aussi j'ai voulu faire quelques tests, et je tombe sur un os.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#include <stdlib.h>
#include <stdio.h>
 
int main ()
{
char *chaine = "a" ;
printf ( "%s" , chaine ) ;
printf ( "%d" , chaine ) ; /* ne passe pas a la compilation, car printf
demande un  type char*. Pourtant, chaine est un pointeur, donc une adresse,
donc un type int pour moi. Une explication ?*/
printf ( "%d" , *chaine ) ;
return EXIT_SUCCESS ;
}
Résultat :
a
1345143840 (je sais pas à quoi ça correspond, parce que j'ai un warning à la compilation...)
97 (ce résultat me parait bizarre, je pensais que printf ( "%d" , *chaine ) me renverrai le code ascii de la lettre a, or 97 ne correspond pas.)


Merci d'avance de vos explications (: