C++学习记录-指针2
C++学习记录-指针2(指针与数组)
指针与一维数组
创建一个指针指向一维数组,此时指针指向的是一维数组的首地址。
示例:
1 | int arr[2]={1,2}; |
利用指针遍历数组时,让指针++即可让指针向后移动一个位置,指向下一个数值,让指针+i即可让指针向后移动i个位置
示例:
1 | p1++;//此时p1指向2的地址 |
下面附上指针与一维数组关系表格:
| 表现形式 | 表现形式 | 表现形式 | 表现形式 | 含义 |
|---|---|---|---|---|
| &arr[0] | arr | p | 一维数组arr的首地址 | |
| &arr[i] | arr+i | p+i | 一维数组下标为i的元素地址 | |
| arr[0] | *arr | *p | 一维数组第一个元素的值 | |
| a[i] | *(arr+i) | *(p+i) | p[i] | 一维数组下标为i的元素的值 |
指针与二维数组
1.二维数组其实是一维数组的集合
示例代码:
1 | int arr[2][2]={ |
定义二维数组指针:类型 (*指针名)[二维数组的列数]=arr
示例代码:
1 | int (*parr)[2]=arr;//定义二维数组指针 |
解引用方法:先解成一维数组的指针,再按照一维数组的指针进行解引用解出对应的元素
示例代码:
1 | cout<<*parr<<endl; //解出第一个一维数组的指针,打印第一个一维数组的地址008FFC5C |
visual studio中用变量创建数组:
1 | int m,n; |
关于数组指针和sizeof的一些冷知识
1.数组名其实是一个指针,指向该数组的首地址,在数组名后面加 [下标] 相当于对该指针解一次引用。
2.sizeof(数组的首地址),会求得数组的元素个数*4,sizeof(数组的地址),会求得4。
示例:
1 | int brr[3] = { 0,1,2 }; |
运行结果:
1 | 12 4 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星辰微光的博客!





