从某个元素的指针在函数中索引数组
indexing array in function from the pointer of some element
想象一些数组
uint8_t var[5] = {1,2,3,4,5};
所以var
将是指向这个数组第一个元素的指针,并且
uint 8_t* a=var;
b=a[3]
和
b=var[3]
会得到相同的结果。
但是会
a = &var[2];
b = a[1];
和
b=var[3];
一样吗?
这次作业后
a = &var[2];
与
相同
a = var + 2;
由于数组指示符隐式转换为指向其第一个元素的指针,指针 a
指向元素 var[2]
.
所以 a[0]
产生 var[2]
而 a[1]
产生 var[3]
.
注意下标运算符a[i]
的计算方式类似于*( a + i )
.
所以你有 a[1]
等价于 *( a + 1 )
又等价于 *( var + 2 + 1 )
即 *( var + 3 )
.
想象一些数组
uint8_t var[5] = {1,2,3,4,5};
所以var
将是指向这个数组第一个元素的指针,并且
uint 8_t* a=var;
b=a[3]
和
b=var[3]
会得到相同的结果。
但是会
a = &var[2];
b = a[1];
和
b=var[3];
一样吗?
这次作业后
a = &var[2];
与
相同a = var + 2;
由于数组指示符隐式转换为指向其第一个元素的指针,指针 a
指向元素 var[2]
.
所以 a[0]
产生 var[2]
而 a[1]
产生 var[3]
.
注意下标运算符a[i]
的计算方式类似于*( a + i )
.
所以你有 a[1]
等价于 *( a + 1 )
又等价于 *( var + 2 + 1 )
即 *( var + 3 )
.