在开发工业以太网项目的时候经常遇到一些小细节问题,在建立数据报进行传输的过程中传递txbuf缓冲区的地址的时候就遇到类似下面的问题。
一.简单说明1
定义一个2X3的int型的二维数组int array[2][3];并且给这个二维数组赋值1,2,3,4,5,6;
array[0][0]=1
array[0][1]=2
array[0][2]=3
array[1][0]=4
array[1][1]=5
array[1][2]=6
输出结果
1 2 3
4 5 6
array[0]表示第一行的首地址,也就是第一行第一个数的地址,也就是&array[0][0]
So array[0]==&array[0][0];其实&array[0]还==array[0]==&array[0][0],都表示第一行的首地址。
array[1]是第二行的首地址,也就是第二行第一个数的地址,也就是&array[1][0]
so array[1]=&array[1][0];试试&array[1]还==array[1]==&array[1][0]
定义一个指针变量int *p;将第一行的首地址赋给p有3种方式。
1. p=array[0];
2. p=&array[0];
3. p=&array[0][0];
js 二维数组p[0]就等同于array[0][0],也就是p[0]==1;(为了形象记忆,可以用替换的角度去记忆和理解。因为之前说过p=array[0], so,
p[0]就把p换成array[0]再加上[0]就是arary[0][0])
p[1]等于array[0][1]等于2
p[2]等于array[0][2]等于3
同理,将第二行的首地址赋给p也有三种方式:
3. p=array[1];
4. p=&array[1];
5. p=&array[1][0];
p[0]等于array[1][0]等于4
p[1]等于array[1][1]等于5
p[2]等于array[1][2]等于6
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论