说你在 C 中有一个字符数组。像这样:
char array[];
现在,下面哪个语句将打印出地址。我知道 1) 和 2) 会,但是 3) 是否也打印出地址?
1) printf("Arrays adress is %x\n", array);
2) printf("Arrays adress is %x\n", &array[0]);
3) printf("Arrays adress is %x\n", &array);
最佳答案
都没有。它们都将打印垃圾值,即您的程序行为未定义
编辑:由于 OP 现在改变了他的问题,答案是:
它们都将通过使用%p
说明符并强制转换每个array
、&array
和&array[0] 来打印地址
与 void *
。
char array[5]; //let's assume an array of 5 chars
printf("Arrays adress is %p\n", (void *)array);
printf("Arrays adress is %p\n", (void *)&array[0]);
printf("Arrays adress is %p\n", (void *)&array);
关于c - 这些语句都会返回一个地址吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20050506/