大佬教程收集整理的这篇文章主要介绍了c – 右值转换的左值是否会发生?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如:
int x; int *p = &x;
在上面的例子中,p是& x两个左值?或者什么是恰当的例子?
编辑:
那这个呢?
int &r = x;
我确信在这个声明中没有转换,但我很困惑&操作符涉及到这个?
这与一元运算符不同.如果你写x,那么lvalue-to-rvalue转换应用于子表达式x(在这种情况下具有未定义的行为,因为x尚未初始化).
非正式地,“左值到右值的转换”意味着“读取价值”.
引用并未说明&的结果,实际上它是一个右值.在int * p =& x;:
> x是左值,指的是该名称的变量,
>& x是一个rvalue,它是初始化程序的一部分(具体来说,是赋值表达式),
> p既不是右值也不是左值,因为它不是(子)表达式.它是正在定义的变量的名称.在C声明符语法中,它是declarator-id(C 03标准中的8/4).
int& r = x;不使用&完全是操作符的地址. &声明符中的字符只是语法,意思是r是引用到int,它不是取r的地址.在C声明符语法中,它实际上称为ptr-operator.
以上是大佬教程为你收集整理的c – 右值转换的左值是否会发生?全部内容,希望文章能够帮你解决c – 右值转换的左值是否会发生?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。