admin 管理员组

文章数量: 887019


2023年12月24日发(作者:悬浮分享按钮样式)

在开发工业以太网项目的时候经常遇到一些小细节问题,在建立数据报进行传输的过程中传递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];

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


本文标签: 地址 遇到 时候