12-操作符
一、算术操作符
+(加) | -(减) | *(乘) | /(除,即商) | %(取模,即余数) |
---|
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a;
a = 9 / 2;
printf("a = %d\n\n", a);
float b;
b = 9 / 2;
printf("b = %f\n\n", b);
int c;
c = 9 % 2;
printf("c = %d\n\n", c);
return 0;
}
二、移位操作符
<<(左移) | >>(右移) |
---|
【注】移位操作符,移动的是二进制位!!!
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 2;
int b = a << 1;
printf("b = %d\n", b);
return 0;
}
三、位操作符
&(按位与) | |(按位或) | ^(按位异或) |
---|
四、赋值操作符
= (赋值) | +=(加等) | -=(减等) | *=(乘等) | /=(除等) | &=(与等) | ^=(异或等) | |=(或等) | >>=(右移等) | <<=(左移等) |
---|
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a1 = 2;
a1 = a1 + 5;
int b1 = 2;
b1 += 5;
printf("a1 = %d\t b1 = %d\n\n", a1, b1);
int a2 = 2;
a2 = a2 - 3;
int b2 = 2;
b2 -= 3;
printf("a2 = %d\t b2 = %d\n\n", a2, b2);
int a3 = 2;
a3 = a3 % 3;
int b3 = 2;
b3 %= 3;
printf("a3 = %d\t b3 = %d\n\n", a3, b3);
return 0;
}
五、单目操作符
符号 | 释义 |
---|---|
! | 逻辑反操作 |
- | 负值 |
+ | 正值 |
& | 取地址 |
sizeof | 操作数的类型长度(单位:字节) |
~ | 对一个数的二进制按位取反 |
-- | 减减(前置 或 后置) |
++ | 加加(前置 或 后置) |
* | 间接访问操作符(解引用操作符) |
(类型) | 强制类型转换 |
【注】C语言规定:0 表示 假;非0 表示 真!!!
1、!(逻辑取反)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = !a;
printf("a = %d\t b = %d\n\n", a, b);
if (a)
{
//若 a 为真,做事
}
if (b)
{
//若 a 为假,做事
}
return 0;
}
2、sizeof
用来计算C语言中类型的大小。详见:数据类型的大小。
【注】是一个操作符(sizeof 在求变量时后面的括号可以省略,而在求类型时后面的括号不可以省略。因为函数后面的括号是不能省略的)。单位:字节!!!
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char)); // 1(字节)
printf("%d\n", sizeof(short)); // 2(字节)
printf("%d\n", sizeof(int)); // 4(字节)
printf("%d\n", sizeof(long)); // 4(字节)
printf("%d\n", sizeof(long long)); // 8(字节)
printf("%d\n", sizeof(float)); // 4(字节)
printf("%d\n", sizeof(double)); // 8(字节)
printf("%d\n", sizeof(long double)); // 8(字节)
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int arr[10] = { 0 }; //数组总空间:4 * 10
printf("%d\n", sizeof(arr)); //40
printf("%d\n", sizeof(arr[0])); //4
int sz = sizeof(arr) / sizeof(arr[0]); //求取数组元素个数
printf("%d\n", sz); //10
return 0;
}
3、~(按位取反)
【注】将所有二进数中的 0 变成 1;1 变成 0!!!
一个整数的二进制表示有 3 种:原码、反码、补码。
整数的二进制数最高位表示符号位:1 表示 负;0 表示 正。
正整数的 原码、反码、补码 相同。
【注】计算机存储的是补码!!!
(1)原码
负整数的二进制数,就是原码。
(2)反码
负整数的二进制数,除最高位(符号位)不变,其余所有二进数中的 0 变成 1;1 变成 0,就是反码。
(3)补码
负整数的反码加 1。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
printf("%d\n", ~a);
return 0;
}
【注】按位取反(~)不在乎整数还是负数,一律都是 0 变成 1;1 变成 0 (符号位也正常改变)!!!
4、++(加加)
【注】--(减减)和 ++(加加)用法相同!!!
(1)前置++(加加)
先++(加加),后使用。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 10;
int b = ++a; //前置 ++ :先 ++,后使用
printf("a = %d\t b = %d\n", a, b); //a = 11 b = 11
return 0;
}
(2)后置++(加加)
先使用,后++(加加)。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 10;
int b = a++; //后置 ++ :先使用,后 ++
printf("a = %d\t b = %d\n", a, b); //a = 11 b = 10
return 0;
}
5、(类型)
强制类型转换。
【注】主要使用在使用数据类型不匹配的时候!!!
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = (int)3.14; //强制类型转换:将 3.14 转换成 3
printf("a = %d\n", a);
return 0;
}
六、关系操作符
> | >= | < | <= | !=(不等于) | ==(等于) |
---|
七、逻辑操作符
&&(逻辑与) | ||(逻辑或) |
---|
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 3; //非 0 的数(真)
int b = 0; //0(假)
int c = a && b; //假
printf("c = %d\n", c);
int d = a || b; //真
printf("d = %d\n", d);
return 0;
}
八、条件操作符
条件操作符又称三目操作符。
表达式1 ? 表达式2 : 表达式3 |
---|
表达式1成立(真),表达式2计算,整个表达式的结果是:表达式2的结果。
表达式1不成立(假),表达式3计算,整个表达式的结果是:表达式3的结果。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 3;
int max1 = 0;
if (a > b)
{
max1 = a;
}
else
{
max1 = b;
}
printf("max1 = %d\n", max1);
int max2 = a > b ? a : b;
printf("max2 = %d\n", max2);
return 0;
}
九、逗号表达式
逗号隔开的一串表达式。
【注】逗号表达式会从左往右依次计算。整个逗号表达式的结果,是最后一个表达式的结果!!!
表达式1, 表达式2,表达式3, …… , 表达式n |
---|
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 3;
int c = 5;
int d = (a = b + 2, c = a - 4, b = c + 2); //a = 5 c = 1 b = 3
printf("a = %d\t b = %d\t c = %d\t d = %d\n", a, b, c, d);
return 0;
}
十、下标引用、函数调用、结构体成员
[] () . -> |
---|
1、[](下标引用操作符)
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; //[]下标引用操作符
printf("arr[5] = %d\n", arr[5]); //[]下标引用操作符
return 0;
}
2、()(函数调用操作符)
调用函数时,函数后面的英文格式 ()(小括号),就是函数调用操作符。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
printf("hehehehehe\n"); //()函数调用操作符
printf("%d\n", 100); //()函数调用操作符
return 0;
}
标签:12,CRT,int,操作符,printf,include,表达式
From: https://www.cnblogs.com/AK47YHAO/p/18588630