2018-08-29C语言运算符-02

sizeof运算符

  • sizeof可以用来计算一个变量或常量所占的内存字节数
    标准格式: sizeof(常量 or 变量);
  • 其他格式
    sizeof 变量\常量;
  • int a = 10;
  • sizeof a;
  • sizeof 10;
    sizeof( 数据类型);
  • sizeof(float);
    sizeof不是一个函数, 是一个运算符, 该运算符的优先级是2

逗号运算符

  • 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式
  • 逗号运算符会从左至右依次取出每个表达式的值, 最后整个逗号表达式的值等于最后一个表达式的值


关系运算符

默认情况下,我们在程序中写的每一句正确代码都会被执行。但很多时候,我们想在某个条件成立的情况下才执行某一段代码
这种情况的话可以使用条件语句来完成,但是学习条件语句之前,我们先来看一些更基础的知识:如何判断一个条件是否成立


  • C语言中的真假性
    在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立,就是判断条件的“真假”
    怎么判断真假呢?C语言规定,任何数值都有真假性,任何非0值都为“真”,只有0才为“假”。也就是说,108、-18、4.5、-10.5等都是“真”,0则是“假”
    关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”
名称 符号 说明
大于运算符 > 单目运算符,具有左结合性
小于运算符 < 单目运算符,具有左结合性
大于等于运算符 >= 单目运算符,具有左结合性
小于等于运算符 <= 单目运算符,具有左结合性
等于运算符 == 单目运算符,具有左结合性
非等于运算符 != 单目运算符,具有左结合性

优先级的问题

  • 六个关系运算符中除了 == 和 != 比较低其他四个优先级都比他们高
  • 如果碰到==和!=在一起就看结合性,因为优先级是一样的

注意点:无论是float还是double都有精度问题, 所以一定要避免利用==判断浮点数是否相等


逻辑运算符

逻辑非运算符 ! 单目运算符,具有右结合性
逻辑与运算符 && 双目运算符,具有左结合性
逻辑或运算符 || 双目运算符,具有左结合性

  • 逻辑非
    格式: ! 条件;
    运算结果: 真变假,假变真 将最后的运算结果反过来如果是真就变假如果是假就变真
  • 逻辑与
    格式: 条件A && 条件B;
    运算结果:一假则假
    运算过程:只有条件A和条件B都是真的才会返回真
    如果"条件A"成立,"条件B"不成立,结果就为0,即“假”
    如果"条件A"不成立,不会再去判断"条件B"是否成立, 因为逻辑与只要一个不为真结果都不为真
  • 逻辑或
    格式: 条件A || 条件B;
    运算结果:一真则真
    运算过程:只要有一个条件为真就会返回真,只有当两个条件都为假时才会返回0
    如果"条件A"不成立,接着再判断"条件B"是否成立, 如果"条件B"成立,结果就为1,即“真”
    如果"条件A"成立, 不会再去判断"条件B"是否成立, 因为逻辑或只要一个为真结果都为真

三目运算符

  • 条件运算符是C语言的唯一的三目运算符,它需要3个数据或表达式构成条件表达式

格式: 表达式1 ?表达式2(结果A):表达式3(结果B)
示例: 是否结婚 ? 结婚 : 不结婚;

  • 求值规则:

    如果"表达式1"为真,三目运算符的运算结果为"表达式2"的值(结果A),如果"表达式1"假的话,那么结果就是"表达式3"的值(结果B)
  • 注意点
    条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符
    条件运算符?和:是一个整体,不能分开使用
    条件运算符的结合方向是从右至左

强制类型转换(显示转换) 自动类型转换(隐式转换)
(需要转换的类型)(表达式) 1.算数转换 2.赋值转换
  • 强制类型转换(显示转换)
    // 将double强制转换为int类型
    int a = (int)10.5;
  • 算数转换
    系统会自动对占用内存较少的类型做一个“自动类型提升”的操作, 先将其转换为当前算数表达式中占用内存高的类型, 然后再参与运算(也就是俗话说运算的时候小类型会被转化为大类型)
    当前表达式用1.0是double类型占用8个字节, 2是int类型占用4个字节
    所以会先将整数类型2转换为double类型之后再计算
    double b = 1.0 / 2;
  • 赋值转换
    赋值时左边是什么类型,就会自动将右边转换为什么类型
    int a = 10.6;

注意点:
参与计算的是什么类型, 结果就是什么类型


类型转换并不会影响到原有变量的值

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容