c++里面 pointer+k 和 *(pointer+k)的区别是什麼呀

2025年03月13日 02:15
有2个网友回答
网友(1):

pointer+k指的是指针向后移动k个位置。比如
int a[5];
int* p = a; //指针p指向数组a的第一个元素a[0]
int* q = p + 3; //指针q指向数组a的第4个元素a[3]

pointer+k表示指针,那么*(pointer+k)就表示对指针的解引。
继续上面的例子
int b = *(p + 3); //表示将a[3]的值赋给b

网友(2):

设 p 是指针,则 p+k 表示指针向后移动 k 个单元,每个单元的大小是 p 指向的类型的 sizeof 大小,所以 p+k 的结果仍然是个指针。而 *(p+k) 是得到 p+k 这个指针位置上存储的数据类型的值。