#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