📜  ++ * p,* p ++和* ++ p之间的区别(1)

📅  最后修改于: 2023-12-03 14:59:00.512000             🧑  作者: Mango

++ * p* p ++* ++ p 的区别

在 C/C++ 中,指针是一种非常重要的数据类型,其主要作用是用于地址运算。而 ++ * p* p ++* ++ p 这三种操作都涉及到指针的运算,它们的区别如下:

  • ++ * p :先对指针 p 所指向的内容进行自增操作,然后返回自增后的值。举个例子:
int a[] = {1, 2, 3};
int *p = a;
cout << ++ *p << endl;  // 输出 2
cout << *p << endl;     // 输出 2
  • * p ++ :先将指针 p 指向的内容取出,然后将指针 p 自增一位(移动一位),最后返回取出的内容。举个例子:
int a[] = {1, 2, 3};
int *p = a;
cout << *p ++ << endl;  // 输出 1
cout << *p << endl;     // 输出 2
  • * ++ p :先将指针 p 自增一位(移动一位),然后再对指针 p 所指向的内容进行取值操作,最后返回取出的内容。举个例子:
int a[] = {1, 2, 3};
int *p = a;
cout << * ++ p << endl; // 输出 2
cout << *p << endl;     // 输出 2

我们可以看到,++ * p* ++ p 都是先自增指针,再取出其所指向的值;而 * p ++ 则是先取出指针所指向的值,再自增指针。

需要注意的是,这三种操作都是对指针所指向的内容进行操作,而指针本身的值(即内存地址)其实都是不变的。因此,在平常的编码过程中,我们要针对具体情况选取适合的操作,以充分利用指针的功能。