kann ichWie deklariere konstanten Array-Parameter in C?
#include <stdio.h>
int main(const int argc, const char * const * const argv) {
argv = NULL;
printf("Hello, world\n");
return 0;
}
schreiben Und das nicht kompilieren, weil argv
const (was gut ist) ist.
Allerdings schlug ein Dokument, das ich las, char * argv[argc + 1]
als eine bessere Art vor, argv zu erklären. Aber wie kann ich es so machen, dass dieser Deklarationssatz Argv selbst const macht?
#include <stdio.h>
int main(const int argc, const char * const const argv[argc + 1]) {
argv = NULL;
printf("Hello, world\n");
return 0;
}
Dies kompiliert, aber ich möchte wirklich nicht zu.
'wie kann ich es so machen, dass dieser Deklarationsstil argv selbst const macht?' Das sollten Sie nicht tun. 'argv' ist nicht const. – Matt
@Matt 'argv' ist ein Zeigerargument zu' main'. Es gibt keinen Grund, warum es nicht als "const" deklariert werden kann, solange "main" es nicht ändert. Das ist der Kern der Frage von OP. –
'argv' als Zeiger muss nicht' const' sein und das Array wird vom Standard definiert, um auch nicht 'const'-qualifiziert zu sein. Siehe 5.1.2.2.1p2 – Olaf