我想知道这4个符号是什么意思.我是C语言中的新手,我不确定这是否被认为是指针算术?
1. (*x)++
2. *(x++)
3. ++(*x)
4. *(++x)
Run Code Online (Sandbox Code Playgroud)
谢谢
(*x)++- 增加指定的值x(postincrement,返回原始值)
*(x++)- 增量x(后增量)取消引用原始指针).
++(*x) - 与#1相同,但返回递增的值.
*(++x) - 与#2相同,但取消引用结果指针.
此外,#2和#4改变指针(指针算术)的值,而#1和#3 - 改变指向的值x(即:在算术中的任何-x-点).
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,但不修改指针本身; 所以这些不被认为是指针算术.