首页 技术资料正文

C语言-运算符和&运算符(golang语言)

piaodoo 技术资料 2022-08-26 23:07:39 673 0

C语言*运算符和&运算符(golang语言)

C语言*运算符和&运算符

如果操作数 x 的类型为 T,则表达式 &x 的类型是 T 类型指针(指向 T 的指针)。的操作数必须是在内存中可寻址到的地址。换句话说,该运算符(例如左值),而不可以用于位字段,以及那些还未被存储类修饰符 register 声明的内容。当需要初始化指针,以指向某些对象或函数时,需要获得这些对象或函数的地址:

float x, *ptr;
ptr = &x;           // 合法:使得指针ptr指向x
ptr = &(x+1);       // 错误: (x+1) 不是一个左值
相反地,(indirection operator),有时候这会被称为(dereferencing operator)。它的操作数必须是指针类型。如果 ptr 是指针,那么 *ptr 就是 ptr 所指向的对象或函数。如果 ptr 是一个对象指针,那么 *ptr 就是一个左值,可以把它(即 *ptr)当作赋值运算符左边的操作数:
float x, *ptr = &x;
*ptr = 1.7;                                      // 将1.7赋值给变量x
++(*ptr);                                        // 并将变量x的值加1
在这个示例最后的语句中,ptr 的值保持不变,但 x 的值变成 2.7。如果指针操作数的值不是某个对象或函数的地址,则间接运算符*的操作结果无法确定。像其他一元操作数一样,运算符 & 和 * 具有很高的优先级。操作数的组合方式是从右到左。因此,表达式 ++(*ptr)中的括号是没有必要的。:如果 x 是一个表达式,用于指定一个对象或一个函数,那么表达式 *&x 就等于 x。相反地,在形如 &*ptr 的表达式中,这些运算符会互相抵消,表达式的类型与值等效于 ptr。然而,。

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/119283.html

评论

搜索