🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.lang.c
Article #15029

Re: accès à un élément de *argv[]

#15029
From: Pierre Maurette
Date: Sat, 15 Oct 2005 13:31
45 lines
2928 bytes
Thierry B, le 15/10/2005, a �crit :
> Bonjour,
>
> Quand on d�clare une fonction main comme ceci:
> int main (int argc, char *argv[])
>
> *argv[], repr�sente un tableau dont chaque �l�ment est un pointeur
> vers une chaine de caract�re.
*argv[] ne repr�sente mon avis rien de pr�cis, disons une erreur de 
syntaxe.
Les *argv[n] pour n compris entre 0 et argc - 1 sont de type char et 
repr�sentent le premier caract�re ('\0' compris) d'une cha�ne.
argv[argc] est le pointeur nul, *argv[argc] un crash. Bref, c'est un 
peu confus.

Dans le cas g�n�ral:
Type Ident[];
d�clare que Ident est un tableau de "Type".
Vous avez le choix de la position de l'�toile quand Type est un 
pointeur (choix de style). Ici, et AMHA le plus souvent, l'�criture 
suivante est plus claire:
char* argv[];
argv est un tableau de char*, que vous pouvez prononcer "argv� est un 
tableau de char�toiles".
*Dans le contexte*, vous pouvez faire l'assimilation char* <=> cha�ne. 
Donc argv[n] est la enni�me cha�ne argument.



> Je ne comprends pas pourquoi alors on acc�de � la valeur de chaque
> �l�ment de ce tableau par argv[i] car si chaque �l�ment est un
> pointeur, il faut utiliser une * pour avoir la vlaeur de ce pointeur
> non?
Non. argv[i] *est* la valeur du pointeur, c'est � dire ce qu'il faut 
fournir � une fonction qui attend une cha�ne:
printf("%s\n", argv[0]);
Mais aussi:
printf("La chaine: %s\n", argv[0]);
printf("Adresse de la chaine: %p\n", argv[0]);
printf("Premier caract�re de la chaine: %c\n", *argv[0]);



-- 
Pierre Maurette
Technical Details
Message-ID: <mn.7ba37d5a3355d570.31483@laposte.net>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!proxad.net!infeed-1.proxad.net!news18-e.free.fr!not-for-mail
References: <1129375708.461315.266570@g14g2000cwa.googlegroups.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: f9822,81ea3528af9bc77b
X-Google-Attributes: gidf9822,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!proxad.net!infeed-1.proxad.net!news18-e.free.fr!not-for-mail
Subject: Re: accès à un élément de *argv[]
From: "Pierre Maurette" <maurettepierre@wanadoo.fr>
References: <1129375708.461315.266570@g14g2000cwa.googlegroups.com>
Newsgroups: fr.comp.lang.c
Message-ID: <mn.7ba37d5a3355d570.31483@laposte.net>
X-Newsreader: MesNews/1.04.00.00
Date: Sat, 15 Oct 2005 15:31:54 +0200
MIME-Version: 1.0
X-Face: cmi$3R1_J{[}5K|8d'LDiJ$SsZ*gn,j*PhJ#KVGt+45,E_N9O}GrhhQ>fb&q<&lz=g%PEv' u"m)N|KrBMux?2:E?N7Uw3L#H>L#GwM}<qH-?#_Y$B9]$q1"~iUGtN#HVy?}7.`m&iKF>gY:.`W.qu z`1'W'h-AXPmB]#7~<+@H.<0M`-jBkCWbmkcT_*LBVD3|p1a?h1H;cHq{$-vbeP@Hdcqp5z~lwU7ZK `~
Reply-To: maurettepierre@wanadoo.fr
Content-Type: text/plain; charset="iso-8859-15"; format=flowed
Content-Transfer-Encoding: 8bit
X-Antivirus: avast! (VPS 0541-3, 14/10/2005), Outbound message
X-Antivirus-Status: Clean
Lines: 47
Organization: Guest of ProXad - France
NNTP-Posting-Date: 15 Oct 2005 15:30:07 MEST
NNTP-Posting-Host: 84.7.247.177
X-Trace: 1129383007 news18-e.free.fr 16490 84.7.247.177:3123
X-Complaints-To: abuse@proxad.net