实践出真知,直接上代码:

#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语言数组加取地址符(&)和不加取地址符(&)的区别
Tagged on:     

发表评论