use*_*316 0 c arrays pointers memory-address
说你在C中有一个字符数组.像这样:
char array[];
Run Code Online (Sandbox Code Playgroud)
现在,下面的哪些陈述将打印出地址.我知道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);
Run Code Online (Sandbox Code Playgroud)
他们都不是.所有这些都将打印垃圾值,即您的程序的行为未定义
编辑:由于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);
Run Code Online (Sandbox Code Playgroud)