zou107

 

 一、数组的a+1和&a+1的区别

先看看测试代码:

1 int data[10]={};
2 printf(" sizeof(data) = %d.\n", sizeof(data));
3 
4 printf(" data         = %p.\n", data);
5 printf(" &data        = %p.\n", &data);
6 printf(" (data+1)     = %p.\n", (data+1));
7 printf(" ((&data)+1)  = %p.\n", ((&data)+1)); // data+1*sizeof(data)

运行结果:

分析:

  (1)可以看出a的值等价于&a。

  (2)a+1表示指向数组中下一个数据地址处;&a+1表示加上整个数组的大小,已经超出了数组的范围。

  (3)&a+1这种用法是有一定危险的,建议一般情况下不要使用。

  (4)实际中有可能不会使用,但是在这里分析是为了加深对数组的内存分布的理解。

 

分类:

技术点:

相关文章:

  • 2021-11-18
  • 2021-11-18
  • 2021-11-18
  • 2021-11-18
  • 2021-12-12
  • 2021-11-11
  • 2021-12-19
  • 2021-11-05
猜你喜欢
  • 2021-11-18
  • 2021-11-18
  • 2021-06-15
  • 2021-11-18
  • 2021-11-18
  • 2021-11-18
  • 2021-11-11
相关资源
相似解决方案