首页 > 代码库 > 和指针相关的两个特殊运算符,和相关的等价表达式

和指针相关的两个特殊运算符,和相关的等价表达式

和指针相关的两个特殊运算符:

一、"&" 取地址运算符,通过&运算符可以取出普通变量的地址;

二、"*"  有两种意义:

   1.  为指针标志: 是否为指针标志主要看前面是否有类型,此处有一个int

   2.  为指针运算符:

     在等号右面为取值。*可以取出指针变量所指向的普通变量的值。

     在等号左面为赋值。*可以将指针变量所指向的普通变量的值,修改为其他。

   3.  为乘法运算符。当且仅当左右的都为变量时。略。

int a, b =20, c=30, d=40, *p; (正确,此处的*为指针标志,只起到定义的左右,没有取值和赋值的作用。是否为指针标志主要看前面是否有类型,此处最前面有一个int)

p=&d; (正确,p指向d的地址)

a=*p;  (正确,此处的*为取值。最后结果a的值变为了d的值40)

*p =c; (正确,此处的*为赋值。最后结果d的值变为了C的值30)

*p =&b; (运行错误,左边为内容值,右边为地址,不等价)

----------------------------

等价表达式

若指针变量p指向变量a,即将变量a的地址赋给了指针变量p.

如:int a=20, *p=&a;

则有如下结果:

A、*p <=> a

B、 p <=> &a

C、 &*p <=> &a <=> p

D、*&a <=> *p <=> a

E、 (*p)++  a++ 

     (*p)--  a--    

     ++(*p)  ++a   ++*p   

      --(*p)  --a   --*p