美文网首页
笔记2018-08-28

笔记2018-08-28

作者: 我叫你猜猜 | 来源:发表于2018-08-29 18:08 被阅读0次

类型转换

  • 自动类型转换
    • 运算转换(编译器会自动把小类型转换为大类型)
    int num = 10;
    double vauble = 3.0;
    double res = num / value;
  • 赋值转换(将等号右边的类型转换为等号左边的类型)
    int num = 10;
    double vauble = num;
  • 强制类型转换
    int num = 10;
    double res = (double)num;

赋值运算符

  • 赋值运算符的结合性(右结合)和优先级
int number = 10;
// 赋值运算符优先级是14, 普通运算符优先级是3和4, 所以先计算普通运算符
// 普通运算符中乘法优先级是3, 加法是4, 所以先计算乘法 
// number += 1 + 25; number += 26; number = number + 26; 
number = 36; 
number += 1 + 5 * 5; 
printf("number = %i\n", number); // 36 }

sizeof 运算符

  • 作用:可以用来计算一个变量或常量所占的字节内存数.
  • 格式:
    • sizeof( 变量\常量 );
      sizeof(10); char c = 'a'; sizeof(c);
    • sizeof 变量\常量;
      sizeof 10; char c = 'a'; sizeof c;
    • sizeof( 数据类型);
      sizeof(float); 如果是数据类型不能省略括号
    • sizeof 面试题
      • sizeof()和+=、*=一样是一个复合运算符, 由sizeof和()两个部分组成, 但是代表的是一个整体
      • 所以sizeof不是一个函数, 是一个运算符, 该运算符的优先级是2
#include <stdio.h> 
int main(){ 
int a = 10; 
double b = 3.14; 
// 由于sizeof的优先级比+号高, 所以会先计算sizeof(a); 
// a是int类型, 所以占4个字节得到结果4 
// 然后再利用计算结果和b相加, 4 + 3.14 = 7.14 
double res = sizeof a+b; 
printf("res = %lf\n", res); // 7.14 
}

逗号运算符

  • 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把多个表达式连接起来组成一个表达式,称为逗号表达式

  • 逗号运算符会从左至右依次取出每个表达式的值, 最后整个逗号表达式的值等于最后一个表达式的值

  • 格式: 表达式1,表达式2,… …,表达式n;

#include <stdio.h> 
int main(){ 
int a = 10, b = 20, c;
// ()优先级高于逗号运算符和赋值运算符, 所以先计算()中的内容 
// c = (11, 21); 
// ()中是一个逗号表达式, 结果是最后一个表达式的值, 所以计算结果为21  
// 将逗号表达式的结果赋值给c, 所以c的结果是21 
c = (a + 1, b + 1); 
printf("c = %i\n", c); // 21 }

三目运算符

  • 条件运算符是C语言的唯一的三目运算符,它需要3个数据或表达式构成条件表达式
  • 格式 : 表达式1?表达式2(结果A):表达式3(结果B)
三目运算符示意图
  • 求值规则:
    • 如果"表达式1"为真,三目运算符的运算结果为"表达式2"的值(结果A),否则为"表达式3"的值(结果B)
示例: 
int a = 10; 
int b = 20; 
int max = (a > b) ? a : b; 
printf("max = %d", max); 
输出结果: 20 
等价于: 
int a = 10; 
int b = 20; 
int max = 0; 
if(a>b){ 
  max=a; 
 }else { 
  max=b; 
}   
printf("max = %d", max);
  • 注意点:
    1.条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符
    2.条件运算符?和:是一个整体,不能分开使用
    3.条件运算符的结合方向是从右至左
#include <stdio.h>
int main(){ 
int a = 10; 
int b = 5; 
// 先计算 a > b 
// 然后再根据计算结果判定返回a还是b 
// 相当于int max= (a>b) ? a : b; 
int max= a>b ? a : b; 
printf("max = %i\n", max); // 10 
}
#include <stdio.h>
int main(){ 
int a = 10; 
int b = 5; 
int c = 20; 
int d = 10; 
// 结合性是从右至左, 所以会先计算:后面的内容 
// int res = a>b?a:(c>d?c:d); 
// int res = a>b?a:(20>10?20:10); 
// int res = a>b?a:(20); 
// 然后再计算最终的结果 
// int res = 10>5?10:(20); 
// int res = 10; 
int res = a>b?a:c>d?c:d; 
printf("res = %i\n", res); 
}

相关文章

  • 新故事

    2018-08-28

  • 晨雨随笔

    2018-08-28 下墨 2018-08-28 05:05 · 字数 183 · 阅读 0 · 日记本 昨天出去...

  • 2018-08-29

    2018-08-28 魏春香 2018-08-28 06:27 · 字数 386 · 阅读 0 · 日记本 201...

  • 2018-08-28

    戴师傅 2018-08-28 2018-08-28 20:32 打开App (稻盛哲学学习会)打卡第124天 姓名...

  • 笔记2018-08-28

    类型转换 自动类型转换运算转换(编译器会自动把小类型转换为大类型) 赋值转换(将等号右边的类型转换为等号左边的类型...

  • 【置顶】技术研发视频分享汇总

    Android 2018-08-29更新 Android架构技术 2018-08-28 更新 Android核心技...

  • 2018-08-29

    2018-08-28 张shilian 2018-08-29 22:28 · 字数 388 · 阅读 1 · 日记...

  • 2018-08-29

    2018-08-29 万千工品金秀 2018-08-28 22:22 · 字数 376 · 阅读 4 · 日记本 ...

  • 2018-08-28

    2018-08-28 万千工品金秀 2018-08-27 23:24 · 字数 286 · 阅读 8 · 日记本 ...

  • 建立家规的几个原则

    夕玹 2018-08-28 14:44 · 字数 1114 · 阅读 0 · 日记本 制定家规是进行家规教育...

网友评论

      本文标题:笔记2018-08-28

      本文链接:https://www.haomeiwen.com/subject/wpnqwftx.html