数组与指针¶
C++ 中,数组名在大多数表达式中会转换为指向首元素的指针,因此有 a == &a[0]。但数组本身不是指针,也不能给数组名赋值。
若指针 p 指向数组 a 中某个元素,则 p+1 指向它的下一个元素,p+i指向它后面第 i 个元素,p-i 指向它前面第 i 个元素。
因此,如果 p 指向 a[0] ,有 p + i == &a[i],*(p + i) == a[i]。这些指针运算只能在同一数组及其尾后位置的范围内进行,并且不能解引用尾后指针。
C++ 中,数组名在大多数表达式中会转换为指向首元素的指针,因此有 a == &a[0]。但数组本身不是指针,也不能给数组名赋值。
若指针 p 指向数组 a 中某个元素,则 p+1 指向它的下一个元素,p+i指向它后面第 i 个元素,p-i 指向它前面第 i 个元素。
因此,如果 p 指向 a[0] ,有 p + i == &a[i],*(p + i) == a[i]。这些指针运算只能在同一数组及其尾后位置的范围内进行,并且不能解引用尾后指针。