#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void main1(){ int a = 7 / 3; //整数和整数运算,结果为整数2,存储至整型变量a中 printf("a = %d\n", a); //输出a = 2 float b = 7 / 3; //整数和整数运算,结果为整数2,存储至浮点型变量b中 printf("b = %f\n", b); //输出2.000000 精确6位 float c = 7 / 3.0; //整数和浮点数运算,自动往高精度转换,结果为浮点数2.333333,存储至浮点型变量c中 printf("c = %f\n", c);//输出2.333333 精确6位 //求余运算 %两侧必须是整数 printf("%d\n", 5 % 3);// 5= 3*1+2 余数是2 printf("%d\n", 5 % -3);//5 =-3*(-1)+2 余数是2 printf("%d\n", -5 % 3);//-5=3*(-1)+(-2) 余数是-2 //不用求余运算符计算余数 int x = -5; int y = 3; printf("%d\n", x - (x / y)*y);//利用x/y的整数运算求余 system("pause"); } void main2(){ //整数的十位和个位互换 输入25,输出52 int num, i, j; scanf("%d", &num); i = num % 10; j = num / 10; num = i * 10 + j; printf("the output -%d", num); } void main3(){ //5++; //(n+3)++; //自增自减不能用于表达式或常量,优先级高于四则运算 int num = 3; printf("%d",-num++); //-3 等价于-(num++) printf("%d", num); //4 int x, y; printf("%d", x+++y); //等价于 (x++)+y } void main4(){ //5=5; 错误,常量,表达式都不能为左值,只有变量可以 int a=10; int a, b,c; a += 1.3; //等价于 a=a+1.3 a=11.3 因为a是整型,会发生类型转换,所以a=11; a = b = c = 5; //赋值运算符是从右至左执行 } void main5(){ int a = 2; a %= 4 - 1; //a %=(4-1) 赋值运算符从右至左 a%=3 a=2; a += a *= a -= a *= 3;// a += a *= a -= (a *= 3) a += a *= a -=6 此时a=6 //a += a *= (a -=6) a += a *=0 此时a=0 // a += (a *=0) a+=0 此时a=0 //a=a+(a=a*(a=a-(a=a*3))) //逗号表达式是用逗号连接的多个表达式,他的优先级最低,从左至右依次求值,取最后的值 //int a = 1, 2; 错误,因为赋值运算符优先级大于逗号运算符,该式会先计算a=1,此时逗号只是分格符 int a = (1, 2); //先计算1,再计算2,把2赋值给a //1、逗号可以连接多个语句 printf("Hello"), printf("World"),getchar(); //输出HelloWorld //2、逗号起到间隔的作用 printf("%d%d%d",10,20,36); //关系表达式成立是1,不成立是0,顺序是从左至右 1 < 2 < 3; //输出1;实际计算流程为1<2成立,关系表达式为1,则该表达式为1<3,还是成立,整体表达式为1 a = 1 < 2 == 2; //a=0; 关系运算符优先级大于赋值,1<2成立,为0,0不等于2,关系表达式为0 //<,>,<=,>=是同一优先级,比==,!=优先级高 同等运算符运算考虑结合性 0 == 1 > 2; //1 先看1>2,不成立为0,0==0,成立,结果为1 //关系运算符操作数可以是字符,整数,实数 //浮点类型一般不用做关系比较,因为float只能精确6-7位,double只能精确13-14位、 } #define CMD "calc"; void main(){ //字符串常量比较只能比较相等于不相等,比较的是他们的内存地址,内存地址相同则相等,不同则不等 //定义常量时,常量不会被修改,系统会给一片固定的空间给常量,常量可以有多个引用,但其内存地址和内容都不会变 //CMD 和"calc"两个常量指向了同一个地址 CMD=="calc" ? system(CMD) : system("pause"); //打开cmd窗口 //不等的常量calc1会另外开辟内存空间,与calc不是同一地址 CMD == "calc1" ? system(CMD) : system("pause");//不打开cmd窗口 //字符串变量,系统会给字符串变量分配空间,不同内存地址 char str[]="calc"; CMD == str ? system(CMD) : system("pause"); //不打开cmd窗口 }
原文:https://www.cnblogs.com/luoxuw/p/11253145.html