这些语法的含义(指针算术?)

Rya*_* L. 2 c pointers

我想知道这4个符号是什么意思.我是C语言中的新手,我不确定这是否被认为是指针算术?

1. (*x)++ 
2. *(x++) 
3. ++(*x)
4. *(++x)
Run Code Online (Sandbox Code Playgroud)

谢谢

lit*_*adv 6

  1. (*x)++- 增加指定的值x(postincrement,返回原始值)

  2. *(x++)- 增量x(后增量)取消引用原始指针).

  3. ++(*x) - 与#1相同,但返回递增的值.

  4. *(++x) - 与#2相同,但取消引用结果指针.

此外,#2和#4改变指针(指针算术)的值,而#1和#3 - 改变指向的值x(即:在算术中的任何-x-点).


Pra*_*ian 5

1. (*x)++ 
Run Code Online (Sandbox Code Playgroud)

指向的值是x后递增的.这将在递增操作之前产生指向的值.

2. *(x++) 
Run Code Online (Sandbox Code Playgroud)

指针x被取消引用并且后递增.这将返回x增量操作之前指向的值.

3. ++(*x)
Run Code Online (Sandbox Code Playgroud)

指向的值正在x预先递增.这将在增量操作之后产生指向的值.

4. *(++x)
Run Code Online (Sandbox Code Playgroud)

x在预先递增之后指针被解除引用.这将产生紧接在当前指向的位置之后的位置的值x.

由于2和4改变了x它自身的值,因此它们被认为是指针算术的例子.1和3修改指向的对象x,但不修改指针本身; 所以这些不被认为是指针算术.