关于C/C++数组符号的特殊性
#include <cstdio> int main() { int foo[1]; if((void *)foo == (void *)&foo) { printf("%p\t%p\n", foo, &foo); } return 0; }
这里的程序,if后的分支会被执行,计算结果的两个地址是一致的,说明在C/C++中,数组名和对数组名取址,是等价的
#include <cstdio> int main() { int foo[1]; if((void *)foo == (void *)&foo) { printf("%p\t%p\n", foo, &foo); } return 0; }
这里的程序,if后的分支会被执行,计算结果的两个地址是一致的,说明在C/C++中,数组名和对数组名取址,是等价的