笔记2018-08-28

2018-08-29  本文已影响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 运算符

#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 
}

逗号运算符

#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 }

三目运算符

三目运算符示意图
示例: 
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);
#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); 
}
上一篇 下一篇

猜你喜欢

热点阅读