实践出真知,直接上代码:
#include <iostream> int main() { short s[4] = {0x01, 0x21, 0x32, 0x53}; printf("&s的值:%u\n", &s); printf("s的值:%u\n", s); printf("&s+1的值:%u\n", &s + 1); printf("s+1的值:%u\n", s + 1); printf("&s[1]的值:%u\n", &s[1]); printf("s[1]的值:%u\n", s[1]); return 0; }
输出结果:
&s的值:3805102112
s的值:3805102112
&s+1的值:3805102120
s+1的值:3805102114
&s[1]的值:3805102114
s[1]的值:33
得出结论:
&s数组首地址
s数组首地址
&s+1数组首地址 + sizeof(short) * 元素个数
s + 1数组首地址+ sizeof(short),第二个元素的地址
&s[1]数组第二个元素的地址
s[1]数字元素的值
C语言数组加取地址符(&)和不加取地址符(&)的区别