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

2025-03-13 02:15:11
推荐回答(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 这个指针位置上存储的数据类型的值。