//-----------------------------------------------------------------------------------------------------10.操作符
//----------------------------------------------------------------------------------------- 10.1 算数操作符
// + - * / %(取模)
#include <stdio.h>
//int main()
//{
// int a = 7 / 2;
// printf("%d\n", a); //输出 商 3
// int b = 7 % 2;
// printf("%d\n", b); //输出 余 1
//
// //为什么不能输出3.5?
// //除号两端都是整数时,执行的是整数除法,如果两端只要有一个浮点数就能执行浮点数除法
// // 取模 操作符的两端必须为整数
//
// float c = 7 / 2.0;
// printf("%f\n",c); //输出结果 3.50000
// printf("%.1f\n", c); //输出结果 3.5
// printf("%.2f\n", c); //输出结果 3.50
// // %d 打印浮点数
//
// return 0;
//}
//-------------------------------------------------------------------------------------------- 10.2 移位操作符
// 左移操作符<< 右移操作符>>
//涉及二进制运算,后边再讲
//-------------------------------------------------------------------------------------------- 10.3 位操作符
// & ^ |
// 后边讲
//-------------------------------------------------------------------------------------------- 10.4 赋值操作符
// = += -= /= &= ^= |= >>= <<=
//int main()
//{
// int a = 0;//初始化
// a = 20; //赋值
// a = a + 3;//a=23
// a += 3;//a=a+3=23
// a -= 3;//a=a-3=17
// return 0;
//}
//-------------------------------------------------------------------------------------------- 10.5 单目操作符
// 只有一个操作数的操作符
// ! 逻辑反操作
// - 负值
//+ 正值
// & 取地址(不讲)
// sizeof 取操作数的类型长度,以字节为单位
// ~ 对一个数的二进制位取反(不讲)
// -- 前置,后置--
// ++ 前置,后置++
// * 直接访问操作符(解引用操作符)
// (类型) 强制类型转换
//--------------------------------------------------------------------------取反 !
//int main()
//{
// int flag = 2;// 0为假,flag为假
// if (!flag)// !取反逻辑,也就是 如果flag为真, 则输出hehe
// {
// printf("hehe\n");
// }
//
// ----------------------------------------------------------------------------负值-
// int a = -10;
// int b = -a;
// printf("b=%d\n",b); //输出b=10
//
//
// ----------------------------------------------------------------------------sizeof
// int c = 10;
// printf("%d\n",sizeof(c)); //输出4
// printf("%d\n",sizeof(int)); //输出4
// printf("%d\n", sizeof c ); //输出4
// //printf("%d\n", sizeof int ); 错误
//
//sizeof 计算数组的大小
// int arr1[10] = { 0 };
// printf("%d\n", sizeof(arr1)); //输出 40 计算整个数组的大小,单位是字节
// //一个整型四个字节 一共十个元素,一个元素四个字节,一共40个字节
// printf("%d\n",sizeof(arr1[0])); //输出 4
// printf("%d\n",sizeof(arr1)/sizeof(arr1[0])); //输出10----------------数组的元素个数
数组的元素个数为10
数组总大小为 40字节
//
// return 0;
//}
//-------------------------------------------------------------------- 前置 后置 -- ++
//int main()
//{
// int a = 10;
// int b = a++; //后置++ ,先使用,后++ (b先使用a的值,a 的值再+1)
// int b=a; a=a+1
// printf("b=%d\n",b); //输出10
// printf("a=%d\n", a);//输出11
// int c = ++a;//前置++,先++,再使用(a先+1,c再使用a++后的值)
// printf("a=%d\n", a);//输出12
// printf("c=%d\n", c); //输出12
// int d = a--;//后置a--, 先使用,后--
// printf("d=%d\n", d); //输出d=12
// printf("a=%d\n", a);//输出a=11
// int f = --a;//前置a--, 先--,后使用
// printf("a=%d\n", a);//输出a=10
// printf("f=%d\n", f); //输出f=10
//
// return 0;
//}
//-----------------------------------------------------------------------强制(类型)
//int main()
//{
// int a = (int)3.14; // (int) 让3.14强制变为整型,也就是只取整数部分
// printf("%d\n",a);//输出3
//
// return 0;
//}
//-------------------------------------------------------------------------------------------- 10.6 关系操作符
// >
// >=
// <
// <=
// !=
// == 用来判断等
//----------------------------------------------------------------------- ==
//int main()
//{
// int a = 10;
//
// if (a = 3)//赋值
// {
// printf("hehe\n");//输出 hehe
// }
//
// int b = 4;
// if (b == 3)// 如果 b=3 为真,打印,如果 b=3 为假,不打印
// {
// printf("hehe\n");//没有输出
// }
//
// return 0;
//}
//-------------------------------------------------------------------------------------------- 10.7 逻辑操作符
// && 逻辑与--并且
// | | 逻辑或--或者
//int main()
//{
// int a = 10;
// int b = 20;
// int c = 0;
// int d = 0;
//
// //-----------------------------------------------------------------------------------------&&
// if (a && b)//如果 a 为真且 b 为真,则打印,有一个不为真就不打印
// {
// printf("hehe\n");//输出 hehe a.b皆为真(不为0)
// }
// if (a && c)//如果 a 为真且 c 为真,则打印,有一个不为真就不打印
// {
// printf("yaya\n");//不输出 c=0,为假
// }
//
// //----------------------------------------------------------------------------------------- ||
// if (a || b)//如果 a 为真或者 b 为真,则打印,
// {
// printf("hehe\n");//输出 hehe a.b皆为真(不为0)
// }
//
// if (a || c)//如果 a 为真或 c 为真,则打印
// {
// printf("yaya\n");//输出 yaya,a为真
// }
//
// if (b || c)//如果 b 为真或者 c 为真,则打印
// {
// printf("lele\n");//输出 lele,b为真
// }
//
// if (c || d)//如果 c 为真或者 d 为真,则打印
// {
// printf("keke\n");//不输出 c=0,d=0 ,二者皆为假,不打印
// }
//
// return 0;
//}
//-------------------------------------------------------------------------------------------- 10.8 条件操作符
// exp1 ? exp2 : exp3 --------------------------三目操作符(有三个操作数)
// 真 √ × 输出exp2
// 假 × √ 输出exp3
//int main()
//{
// int a = 10;
// int b = 20;
// int c = 100;
// //------------------------------------------------------------------------------------求两个数较大值
// int r1 = a > b ? a : b; //a>b为假,输出后值
// int r2 = c > b ? c : b; //c>b为真,输出前值
// printf("%d\n", r1);
// printf("%d\n", r2);
//
// return 0;
//}
//-------------------------------------------------------------------------------------------- 10.9 逗号表达式
// 逗号隔开的一串表达式,
// 特点是,从左向右依次计算,整个表达式的结果是最后一个表达式的结果
// exp1, exp2, exp3, ...... expN
//int main()
//{
// int a = 10;
// int b = 36;
// int c = 0;
// int r1 = (c = a - 2, a = b + c, c + 6);
// // c=8 a=44 14
// printf("%d\n", r1);//输出 14
//
// return 0;
//}
//--------------------------------------------------------------------------------- 10.10 下标引用,函数调用和结构成员
// [] () . ->
//------------------------------------------------------------------- [] 下标引用操作符
//int main()
//{
// int arr1[10] = {1,2,3,4,5,6,7,8,9,10}; // []不是操作符,只是定义语法的一种形式
// printf("%d\n", arr1[3]); // [] 就是下标引用操作符, arr1 和 3就是他的两个操作数
// int n = 5;
// printf("%d\n", arr1[n]);// 这可以用变量n,访问元素时,下标可以用变量
//
// return 0;
// }
//------------------------------------------------------------------- () 函数调用操作符
// -------------------------------------------函数求两个数相加
int Add(int x, int y)
{
return x+y;
}
int main()
{
//----------------------------------------------------在程序中定义两个值
int sum1 = Add(234, 1244325); // ()就是函数调用操作符,Add,2,3 都是()的操作数
printf("%d\n",sum1);
//------------------------------------------------------自己输入两个值
int a, b;
scanf_s("%d", &a);
scanf_s("%d", &b);
//scanf_s("%d%d", &a,&b);
int sum2 = Add(a, b);
printf("a+b=%d\n",sum2);
return 0;
}