c语言中关于*和&的意思理解

2020-06-23 科技 82阅读

*代表指针运算符和乘法运算符;&代表取地址,与运算符,引用符。

用于二目运算中的按位(位运算)与运算:

单目是只需要一个操作数的意思,比如:a++ a--   *a  &a 

双目是需要两个操作数的意思,比如:a+b  a-b a*b  a/b  a%b

三目是需要三个操作数的意思,比如:a=c>b?c:b;

例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。

按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。

扩展资料

运算符的使用

1、当需要初始化指针,以指向某些对象或函数时,需要获得这些对象或函数的地址:

floatx,*ptr;

ptr=&x;//合法:使得指针ptr指向x

ptr=&(x+1);//错误:(x+1)不是一个左值

2、当已具有一个指针,并且希望获取它所引用的对象时,使用间接运算符*(indirectionoperator),有时候这会被称为解引用运算符(dereferencingoperator)。它的操作数必须是指针类型。如果ptr是指针,那么*ptr就是ptr所指向的对象或函数。如果ptr是一个对象指针,那么*ptr就是一个左值,可以把它(即*ptr)当作赋值运算符左边的操作数:

floatx,*ptr=&x;

*ptr=1.7;//将1.7赋值给变量x

++(*ptr);//并将变量x的值加1

参考资料来源:百度百科—运算符

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com