写一篇博客方便自己复习。
参考网址:https://www.cnblogs.com/sanghai/archive/2013/11/01/3402258.html
数组名退化为指针:
在使用数组时,大多数情况下数组都会自动转换为指向第一个元素的指针,例如:
int* p = a; // convert a to pointer to first element ,这里也就是退化成了 int *p=&a[0];
这里不能对数组名作引用(在这里也就是取地址),否则就是数组类型的指针,并不能退化成一个元素的指针
不能写成这样 int*p=&a;
(数组可以这么理解, int[10] a, a是一个拥有十个int型的变量,若对a取地址,则就是一个有10个int型的地址,并不是单个元素的指针)
不将数组转换为指针的例外情况有:
1. 数组用作取地址(&)操作符的操作数
2. sizeof 操作符的操作数时 (sizeof求数组长度)
3. 用数组对数组的引用进行初始化时,不会将数组转换为指针。
int val[6] = {1,2,3,4,5,6};
int (&b)[6] = val;
第一次发博客,若有什么错误,请指出,欢迎交流,感谢。
版权声明:本文为博主原创文章,未经博主允许不得转载