c++ 中 ++*p、*p++ 和 *++p 之间的区别
c++server side programmingprogramming
在本节中,我们将了解 C++ 中 *ptr++、*++ptr 和 ++*ptr 之间的区别。
在这里,我们将了解 C 或 C++ 中后缀 ++ 和前缀 ++ 的优先级。前缀 ++ 或 -- 的优先级高于解引用运算符"*",而后缀 ++ 或 -- 的优先级高于前缀 ++ 和解引用运算符"*"。
当 ptr 是指针时,*ptr++ 表示 *(ptr++),而 ++*prt 表示 ++(*ptr)
示例代码
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; ++*ptr; cout << *ptr; return 0; }
输出
I
因此,这里 ptr 首先指向"H"。使用 ++*ptr 后,它将 H 增加 1,现在值为"I"。
示例代码 (C++)
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *ptr++; cout << *ptr; return 0; }
输出
e
因此,这里首先 ptr 指向"H"。使用 *ptr++ 后,它会增加指针,因此 ptr 将指向下一个元素。因此结果是"e"。
示例代码 (C++)
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *++ptr; cout << *ptr; return 0; }
输出
e
在此示例中,我们也使用 ++ 增加 ptr,其中预增量 ++ 的优先级更高,然后它先增加指针,然后使用 * 获取值。因此它打印"e"。