您当前的位置: 首页 >  c语言

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【C语言】数组和指针相关 * 和 & 总结大全

星拱北辰 发布时间:2020-03-06 17:18:34 ,浏览量:0

总结大全
  • a:数组首元素地址
  • &a:数组首元素的地址
  • &a[0]:数组首元素的地址
  • *a:数组首元素的值
  • *(a+n):数组第(n+1)个元素(index为n的元素)的值
  • a+n:数组首元素的地址加上n个元素的字节数
  • &a+n:数组首元素的地址加上n倍数组的字节数
  • *(&a+1):数组首元素的地址加上整个数组的字节数,和(&a+1)一样,相当于数组末尾地址+1
  • *(&a+1)-n:数组倒数第n个元素的地址
  • *(*(&a+1)-n):数组倒数第n个元素的值
验证代码
#include 
int main()
{
    int a[8] = {1, 2, 4, 8, 16, 32, 64, 128};
    // TEST1
    printf("测试1:\n%d\n", a);
    // TEST2
    printf("测试2:\n%d\n", *a);
    // TEST3
    printf("测试3:\n%d\n", &a[0]);
    // TEST4
    printf("测试4:\n%d\n", &a);
    // TEST5
    printf("测试5:\n%d\n%d\n", *(a+1), *(a+3));
    // TEST6
    printf("测试6:\n%d\n%d\n", (a+2), (a+5));
    // TEST7
    printf("测试7:\n%d\n%d\n%d\n", (&a+1), (&a+2), (&a+3));
    // TEST8
    printf("测试8:\n%d\n", *(&a+1));
    // TEST9
    printf("测试9:\n%d\n%d\n%d\n", *(&a + 1)-1, *(&a + 1)-2, *(&a + 1)-3);
    // TEST10
    printf("测试10:\n%d\n", *(*(&a + 1)-1));
    return 0;
}
测试结果
测试1:
6422016
测试2:
1
测试3:
6422016
测试4:
6422016
测试5:
2
8
测试6:
6422024
6422036
测试7:
6422048
6422080
6422112
测试8:
6422048
测试9:
6422044
6422040
6422036
测试10:
128
关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0608s