本文主要是介绍第十二天--二维数组的彻底解刨--地址,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.二维数组我们用父子的地址来称呼二维数组的地址
比如arr[3][4]
这里的arr是二维数组的首地址,也是父数组的首地址,也是子数组的首地址
arr+1父数组的地址偏移1,实际上是偏移了4*4=16个字节
arr[0]是子数组的首地址,arr[0]+1是子数组偏移一位,实际上偏移了4个字节。
2.子数组的首地址可以有两种取地址的方法:
arr[0]为子数组首地址,arr[0]+1,偏移一位
等价于下面:
*(arr+0)为子数组的首地址,*(arr+0)+1,偏移一位。
区别:他们偏移的字节不同
#include <stdio.h>
int main()
{int arr[3][4]={{11,22,33,44},{55,66,77,88},{99,111,222,333}};printf("arr是父亲地址:%p,偏移1后是%p\n",arr,arr+1);printf("arr[0]是子数组地址:%p,偏移1后是&p\n",arr[0],arr[0]+1);printf("arr[0]是子数组地址:%p,偏移1后是&p\n",*(arr+0),*(arr+0)+1);return 0;
}
这篇关于第十二天--二维数组的彻底解刨--地址的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!