printf 函数是一个可变参数函数,参数的个数不定:int printf(const char *format, ...)
printf("%d\n", x);
printf("%d %d\n", x, y);
scanf 函数从标准输入读取输入,并根据提供的 format 来浏览输入
int getchar(void) 函数从屏幕读取下一个可用的字符,并把它返回为一个整数:
#include
int main(){
//输入数值
int x = 2;
printf("please upload a number\n");
//scanf("%d:", &x);
printf("%d\n", x);
//输入字符,只能一次捕获一个字符
char y='d';
//scanf("%c\n", &y);
printf("y: %c\n", y);
//连续输入多个值
int a=2, b=8;
char c='l';
scanf("%d %d %c", &a, &b, &c);
printf("a:%d and b:%d and c:%c\n", a, b, c);
//getchar 继续输入字符
getchar(); //获取下一个可用字符
char d='k';
scanf("%c", &d);
printf("upload d data:%c", d);
return 0;
}
1 运算符是一种告诉编译器执行 特定的数学或逻辑操作的符号,C 语言内置了丰富的运算符,并提供了以下类型的运算符:
2 表达式就是通过运算符将运算对象(操作数)连接起来的式子,就叫表达式。
a+b, x=a+2, x=y>z, x++
3、运算符也叫做 操作符,根据运算符操作的运算对象的个数可以将运算符分为以下几种
4、运算符的优先级
5、运算符的结合性
运算符的结合性运算符在执行表达式时运算符和左右操作数结合的顺序,运算符的结合性分为:
1、C语言内置的算术运算符有如下几种:
2、注意: % 取模 (取余) 运算符的两个操作数 只能为整数
3、注意:前自增/前自减先计算后引用,后自增/后自减先引用后计算
C语言内置赋值运算符有如下几种:
注意: “=”不是相等的意思,而是赋值
专业术语:数据对象、左值、右值
×+100
y = 200
y = X
y = X+200
//从上面几个表达式我们可以看出:右值可以是常量可以是变量,也可以是任何可以产生一个值的表
//达式(当然任何表达式最终都有一个最终的值)
c + 1 = 10 //是错误的
关系运算符用于比较两个数值中间的关系,所以也叫做 比较运算符。
C语言内置了如下关系运算符:
注意:赋值运算符"="和关系运算符“==”的区别
1、在实际应用中,我们经常需要结合多个逻辑来判断某个条件是否成立。
2、在C语言中如果需要结合多个逻辑组成表达式,应该使用C语言内置的逻辑运算符:
3、判断学生的成绩是否为良好在C语言中应该使用如下表达式:
x>=60 && x<=70
4、情人节快到了,你问你女朋友∶亲爱的想要个什么礼物啊?你女朋友说给我买只口红吧或者买盒面膜也行?为了满足你女朋友的要求你该怎么做呢?
5、如果你女朋友口红和面膜都要呢?
1. 位运算是指按 二进制 进行的运算。
2. 计算机所有的计算最终都是通过二进制的位运算进行的!
3. 在软件开发过程中,常常需要处理二进制位的问题,例如:
4. C 语言 内置的位运算符 有:
1. 左移 实现乘法
int x;
x = 2;
x = x << 2;
x = x << 3
2. 右移 实现除法
int x = 100;
x = x >> 1;
x = x >> 3;
3. 不使用中间变量交换两个整型变量的值
int a = 5, b = 6;
a = a+b;
b = a-b;
a = a-b;
以上代码看似可以实现两个整型变量数值的交换,但是当a,b特别大的时候可能会超出范围。
int a = 5, b = 6;
a = a ^ b;
b = a ^ b;
a = a ^ b;
4. 判断整数的奇偶性
x & 1
5. 位操作进行 高低位交换
a = (a >> 8) | (a << 8);
6. 寄存器的置位
a = a | 0x08
a = a & (~0x08)
7. 数据的“拆解”
x & 0xFF
(x >> 8) & 0xFF
(x >> 16) & 0xFF
(x >> 24) & 0xFF
8. 数据的“组装”
x = 0x12<<24 | 0x34<<16 | 0x56<<8 | 0x78
#include
int main() {
//算术运算符,乘法计算结果
int x = 11;
float y = 3.0;
float z = x * y;
printf("view data z:%f\n", z);
//除法计算结果
int a =10, b=3;
float c = a/b; //整型数据相除为整型数据
float m = 3.0;
float d = a/m; //整型数据和浮点数相除为浮点数
printf("view data c:%f\n", c);
printf("view data d:%f\n", d);
//printf("10/0:%f\n", 10/0); //C语言中不容许除0的操作,会报错
//printf("10%3.3:%d\n", 10%3.3); //取模(取余操作)操作只能在整数和整数之间,不然会报错
//前自增运算符的使用
a = 2;
printf("view add front result, ++a:%d\n", ++a); //自己会增加
b = ++a;
printf("view add front result, a:%d, b:%d\n", a, b); //自己增加然后赋值操作
//后自增运算符的使用
a = 2;
//printf("view add front result, a++:%d\n", a++); //自己不会增加
b = a++;
printf("view add front result, a:%d, b:%d\n", a, b); //在原值基础上+1赋值
//算术运算符
a=2, b= 3+1;
printf("view a:%d and b: %d\n", a, b);
printf("view result a==b:%d\n", a==b); //0
printf("view result a!=b:%d\n", a!=b); //1
printf("view result a>b:%d\n", a>b); //0
printf("view result a=4); //C语言不可以使用 1<=a<=5的形式
//逻辑非
printf("!a: %d\n", !a); //0
//逻辑与
printf("a&b: %d\n", a<=5 && b<=5); //1
//逻辑或, 一个为真就是真
printf("a||b: %d\n", a<=5 || b<=1); //1
//位运算符
char A = 60;
char B = 30;
// 与运算
printf("A & B: %d\n", A & B); //28
//或运算 00为0 , 11为0, 1+任意值为1
printf("A | B: %d\n", A | B); //62
//异或运算 ^, 相同为0, 不同为1
//0和任意值异或得任意值, 1和任意值异或得任意值取反
printf("B^A: %d\n", B ^ A); //34
//按位取反 ~
printf("~A:%d\n", ~A); //-61
return 0;
}
1、逗号运算符将两个表达式连接起来
2、逗号运算符的结合性是“从左至右”:先计算表达式1,后计算表达式2
a = 3;
b = a*2, a+4;
3、整个表达式最终的值是表达式2的值
1、条件运算符是通过问号"?"和冒号";"连接的表达式
2、执行逻辑
3、实例