C++基础 — C++中的变量和三目运算符
C++中所有的变量和函数都必须有类型
C语言中的默认类型在C++中是不合法的。
在C++中,int f( ); 和int f(void);具有相同的意义,都表示返回值为int 的无参函数。
在C中,int f( ); 表示返回值为int,可接受任意参数的函数;
int f(void); 表示返回值为int 的无参数函数。
//在c语言中,表达式的结果 放在什么地方 寄存器
//在C语言中,表达式的返回值 是变量的值(一个数)—— 一个确切的数不能做左值。
//在C++中,表达式返回的是变量本身 —— 可作为左值;因此可以出现在程序的任何地方。
C++编译器如何做到让表达式返回一个内存空间,即内存首地址 即指针的?
{
int a = 10;
int b = 20;
(a < b ? a : b) = 30;
printf("a = %d, b = %d\n", a, b);
}
在C++上述代码正常运行,a= 30, b =20;
在C中会报错,(a < b ? a : b) = 30; ====》左边运行的结果是a的值 20 = 30;(变量不能为左值)。
故代码修改为:
{
int a = 10;
int b = 20;
*(a < b ? &a : &b) = 30;
printf("a = %d, b = %d\n", a, b);
}
本质: C++编译器帮我们完成了取地址的操作。
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并,获取更多隐藏干货,QQ交流群:859800032 微信公众号:Crystal软件学堂
作者:Liu_Jing bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |