2021-10-17

2021-10-17,第1张

2021-10-17 3.5 *** 作符 算术 *** 作符: + - * / % 移位 *** 作符: >>( 右移 *** 作符) << int a = 9/2; float a = 9/2; float a = 9/2.0; int main() { int a = 2; int b = a << 1; printf("%d",b); return 0; } 位操作符: & (按位与) 两个位都为 1 时,结果才为 1 | (按位或) 两个位都为 0 时,结果才为 0 ^ (按位异或) 两个位相同为 0 ,相异为 1 赋值操作符: =, +=, -=, *=, /=, &=, ^=, |=, >>=, <<= a = a+5 —— a += 5 a = a-3 —— a -= 3 a+b: + 有 2 个操作数,双目操作符 单目操作符:只有 1 个操作数的操作符 ! 逻辑反操作 - 负值 + 正值 & 取地址 sizeof 操作数的类型长度(以字节为单位) ~ 对一个数的二进制按位取反 -- 前置、后置 -- ++ 前置、后置 ++ * 间接访问操作符 ( 解引用操作符 ) ( 类型 ) 强制类型转换 int main() { int a = 10; printf( “ %dn ” ,!a); return 0; } 语法: 用法: If(a) { // 如果 a 为真,做事 } If(!a) { // 如果 a 为假,做事 } sizeof 操作数的类型长度(以字节为单位) int arr[10] = {0}; printf (“%dn”, sizeof(arr)); --40: 计算的是数组的总大小, 单位是字节 printf (“%dn”, sizeof(arr[0])); 计算数组大小: int sz = sizeof(arr)/sizeof(arr[0]) 语法: int a = 10; printf(“%dn”, sizeof(int)); printf(“%dn”,sizeof a); 括号可以省略表示不是函数, 但一般不会省略 语法: int a = 0; printf(“%dn”, ~a); ~ 对一个数的二进制按位取反 把所有二进制位中的数字, 1 变成 0,0 变成 1 整数 a 0 二进制: 00000000000000000000000000000000 1111111111111111111111111111111111111 为何输出的结果是 -1 ? 整数(负数) 在内存中存储的是 补码 一个整数的二进制表示有 3 种(以 -1 为例): 原码: 10000000000000000000000000000001 反码: 1111111111111111111111111111111111110 (符号位不变,其他按位取反) 补码: 1111111111111111111111111111111111111 (反码 +1 ) 整数(正数) 原码、反码、补码相同 内存值 1 、所有正整数的按位取反是其本身 +1 的负数; 2 、所有负整数的按位取反是其本身 +1 的绝对值; 3 、零的按位取反是 -1 ( 0 在数学界既不是正数也不是负数) ++ 前置、后置 ++ 语法: int a = 10; int b = a++;// 后置 ++ ,先使用,后 ++ printf(“%dn”, b); printf(“%dn”, a); 语法: int a = 10; int b = ++a;// 前置 ++ ,先 ++ ,后使用 printf(“%dn”, b); printf(“%dn”, a); ( 类型 ) 强制类型转换 #include int main() { int a = 3.14; printf( "%dn" , a); return 0; } //warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据 int a = (int)3.14;//强制类型转换 关系 *** 作符 >, >=, <, <=, !=(用于测试不相等), ==(用于测试相等) 逻辑操作符 && 逻辑与 || 逻辑或 条件操作符 exp1 ? exp2 : exp3 int main() { int a = 3; int b = 7; int max = 0; if (a>b) { max = a; } else { max = b; } max = a > b ? a : b; printf( "%d" , max); return 0; } max = a > b ? a : b; 逗号表达式 exp1,exp2,exp3 … expN int main() { int a = 3; int b = 7; int c = 0; int d = (a = b - c, b = c + a, c = a - b);//结果为最后一个的结果 printf( "%d" , d); return 0; } 下标引用、函数调用和结构成员 [] () . -> [] :下标引用 *** 作符 int arr[10] = {1,2,3,4,5,6,7,8,9,10} printf(“%dn”, arr[5] ); //[ ] 下标引用 *** 作符 () :函数调用 *** 作符 printf(“hehen”)//() 函数调用 *** 作符 // 调用函数的时候,函数名后边的()就是函数调用 *** 作符

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/3970890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存