2017-10-01 2 views
0
main(int argc,char *argv[]) 
{ 
......; 
......; 
} 

Hier ist argc eine interger-Variable und gibt die Anzahl der übergebenen Parameter an. argv ist ein Array von Zeigern auf Zeichen Mein Zweifel ist ich ein ProgrammKönnen wir Integer-Zeiger in Befehlszeilenargumenten verwenden

main(int argc, int*argv[]) 
{ 
......; 
......; 
} 

mit gesehen ist es gültig können wir argv als ein Array von Zeigern auf ganze Zahlen verwenden?

+1

Hat es funktioniert, als Sie es versucht haben? –

+0

nein Ich hatte nicht eine Compiler-App in meinem Telefon, aber es dauerte keine Befehlszeilenargumente – Charan2628

+1

Nein, Sie können nicht. Es ist nicht eine der Formen, die erlaubt sind, –

Antwort

-3
#include <stdio.h> 

int main(int argc, int*argv[]) 
{ 
int a=3; 
int b=4; 

printf("\n%s", (char*)argv[1]); 
return 0; 
} 

Befehlszeilenargumente: abcd

Ausgang: abcd

ich den oben stehenden Code kompiliert und funktionierte perfekt in Compiler habe ich versucht. Es scheint, dass in einigen Compilern int* argv[] zulässig ist. Ich denke, das ist compilerspezifisch, einige werden es erlauben und andere nicht. Sie müssen für das übergebene Argument ein passendes Casting angeben.

NB: Ich sage nicht, dass es mit jedem Compiler und jeder Umgebung funktioniert. :)

+0

Was? Testen mit einem bestimmten Compiler und Sie folgern, dass diese gültige C? Ich würde vorschlagen, dass Sie die Warnstufe aufstellen ('-Wall' o.ä.) In jedem Fall ist "int *' ** falsch **, es sei denn, Sie haben eine spezielle Umgebung, die explizit * und * dies erlaubt. –

+0

Danke für die Informationen. Ich habe ungefähr 5 Online-Compiler, cc, gcc, mingw in meiner Maschine und ich habe festgestellt, dass es compilerspezifisch in meiner Antwort ist. –

+1

'main.c: 3: 5: Warnung: zweites Argument von 'main' sollte 'char **' sein [-Wmain] int main (int argc, int * argv []) 'Sie wissen nicht genau, was unter der Haube passiert ist, die die Ausgabe akzeptabel macht. – CroCo

Verwandte Themen