有关C语言指针传递的问题

img


s1,s2是定义的数组指针,本质上是一个指向数组的指针,为什么可以直接用 s1 [ 0]和 s2 [0]这种写法,s1[0]不是数组的写法吗?

s1和s2是指向数组的指针,所以可以使用s1[0]和s2[0]这种写法来访问数组中的元素。这是因为,C/C++ 中的指针具有数组的语法糖,即指针可以像数组一样使用下标运算符。

当使用s1[0]来访问数组中的元素时,实际上等同于*(s1+0),即访问s1指针所指向的地址加上0个元素大小所得到的地址所存储的值。这就是为什么s1[0]与*s1是等价的。

总之,s1和s2指向数组的首地址,可以使用数组的下标来访问数组中的元素,就像使用指针进行偏移一样。

你可以看更多教程:http://c.biancheng.net/view/1993.html

1、指向数组的指针,就指向了数组的首地址,指向数组的指针可以使用数组的下标索引的方法进行使用。