博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三目运算符在c和c++编译器的表现
阅读量:4211 次
发布时间:2019-05-26

本文共 749 字,大约阅读时间需要 2 分钟。

(1) 

        当三目运算符做左值时,c语言返回的是变量的值;c++返回的是变量本身;c语言中的三目运算符返回的是变量值,不能做为          左值使用。c++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地方。

 

(2)  注意:三目运算符可能返回的值如果有一个是常量值,则不能作为左值使用,比如下面的语句:(a<b?1:b)=30; 

 

(3)  c语言如何支持类似c++的特性呢?

       当左值的条件,其是有内存空间的,即其是一个变量;c++编译器帮助程序员取了一个地址而已。具体可以看如下代码:

       

#include 
using namespace std;//在C语言中 表达式的结果 放在什么地方 寄存器//1 // 在C语言中, 表达式的返回值 是变量的值// 在C++中, 表达式返回的是变量的本身 //2 如何做到的//让表达式返回一个内存空间 ..内存首地址 指针//在C语言中 如何 实现 c++的效果,可以改成 *(a
&a:&b)=10; 这样子语句在c编译器中也可以达到同样的效果//3 本质 //c++编译器 帮我们程序员完成了 取地址的工作 int main(){ int a = 10; int b = 20; int var = 100; var = 101; //返回一个最小数 并且给最小数赋值成3 //三目运算符是一个表达式 ,表达式不可能做左值 (a < b ? a : b) = 30; //这条语句在c++编译器中可以运行,在c编译器中运行失败,这是c++对c的扩展. //int z = (a < b ? a : b ); printf("a = %d, b = %d\n", a, b); system("pause"); return 0;}

 

转载地址:http://lqzmi.baihongyu.com/

你可能感兴趣的文章
Net远程管理实验
查看>>
反病毒专家谈虚拟机技术 面临两大技术难题
查看>>
几种典型的反病毒技术:特征码技术、覆盖法技术等
查看>>
Software Security Testing软件安全测试
查看>>
SQL注入漏洞全接触--进阶篇
查看>>
SQL注入漏洞全接触--高级篇
查看>>
SQL注入法攻击一日通
查看>>
论文浅尝 | 通过共享表示和结构化预测进行事件和事件时序关系的联合抽取
查看>>
论文浅尝 | 融合多粒度信息和外部语言知识的中文关系抽取
查看>>
论文浅尝 | GMNN: Graph Markov Neural Networks
查看>>
廖雪峰Python教程 学习笔记3 hello.py
查看>>
从内核看epoll的实现(基于5.9.9)
查看>>
python与正则表达式
查看>>
安装.Net Framework 4.7.2时出现“不受信任提供程序信任的根证书中终止”的解决方法
查看>>
input type=“button“与input type=“submit“的区别
查看>>
解决Github代码下载慢问题!
查看>>
1.idea中Maven创建项目及2.对idea中生命周期的理解3.pom文件夹下groupId、artifactId含义
查看>>
LeetCode-栈|双指针-42. 接雨水
查看>>
stdin,stdout,stderr详解
查看>>
Linux文件和设备编程
查看>>