Ich habe eine Google auf das, und ich erkannte, dass einige sagen, es kann einige sagen, dass es nicht kann.Können wir die Adresse für Stringliteral ausdrucken?
Ich möchte nur überprüfen.
Zum Beispiel
char gchararr1i[] = "testing 123"; // global char array init
char *gptr1i = "hello", *gptr2ui; // global char pointer init and un-init
float gfloati = 123.4; // global float var init
double gdoubleui; // global double var un-int
int main(int argc, char *argv[]) {
printf("\n Address of string literals \"testing 123\" = %p and \"hello\" = %p \n", gchararr1i, gptr1i);// output the addresses of string literals "testing 123" and "hello"
f1(10, -20, 30.3, 'A', 45.67);
exit(0);
}
Ja, Sie können das tun, obwohl Sie die Zeiger technisch auf 'void *' umstellen sollten. – user3386109
was meinst du nur werfen die Zeiger auf void *? Wie auch immer, wenn es möglich ist, ist die Art, wie ich gedruckt habe, richtig? –
Zum Beispiel 'printf (" adresse =% p \ n ", (void *) gchararr1i);' Die C-Spezifikation besagt, dass das Argument für '% p' * * ein' void * 'sein muss, obwohl es in den meisten Fällen keinen Unterschied macht . – user3386109