在这篇文章中列出了作者在学C语言时容易忽视的多处细节点
C语言广泛应用于底层开发,C语言能以简易的方式编译、处理低级存储器。
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
优点:
1、简洁紧凑、灵活方便
2、运算符丰富(34种)
3、数据类型丰富
4、表达方式灵活实用
5、允许直接访问物理地址,对硬件进行操作
6、生成目标代码质量高,程序执行效率高
7、可移植性好
8、表达力强
目录
一 . scanf()函数
二 . 交换两个数的(高级方法)
三 . 运算符-----表达式
四 . 补充
一 . scanf()函数
1 . scanf()函数执行时,会先检查缓冲区中是否有数据
2 . rewind(stdin); fpurge(stdin);
这两句代码可以讲缓冲区中的数据全部清空
若没有对应数据,则用户输入,若有数据,直接拿数据
3 . 当输入的数据类型是整形或者是浮点型时,空格 回车 Tab键会忽略
4 . 当输入的数据类型是字符型时,空格 回车 Tab键就不会被忽略
#include<stdio.h>
int main()
{
int i;
rewind(stdin);
//fpurge(stdin);
scanf(@"%d",&i);
return 0;
}
二 . 交换两个数的(高级方法)
1 . 最常见-----使用中间变量temp
#include<stdio.h>
void swap (int* a,int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int i = 10;
int j = 20;
swap(&i,&j);
printf("i = %d,j = %d",i,j);
return 0;
}
2 . 数学法
#include<stdio.h>
int main()
{
int i = 10;
int j = 20;
i = i + j;
j = i - j;
i = i - j;
printf("i = %d,j = %d",i,j);
return 0;
}
3 . 异或运算 √
#include<stdio.h>
int main()
{
int i = 10;
int j = 20;
i = i ^ j;
j = i ^ j;
i = i ^ j;
printf("i = %d,j = %d",i,j);
return 0;
}
三 . 运算符-----表达式
1 . 算术运算符-----算术表达式
<1> . 算术运算符 : + - * / %
<2> . 算术表达式 : 由算术运算符链接而成的式子
<3> . 算术运算符优先级 : 先 * / 再+ - 同级别从左到右依次计算,如果有“()”优先
2 . 除法运算符
#include<stdio.h>
int main()
{
double res = 10/4;
double ret = 10*1.0/4;
printf("res = %lf , ret = %lf",res,ret);
return 0;
}
结果如下:所以当使用double除法运算时 要注意除数是否是double类型
3 . 求余运算符
在C语言中 求余运算符只能用于整形变量
4 . 复合赋值运算符
<1> . 复合赋值运算符 : += -= /= *= %=
<2> . 复合表达式 : 由复合赋值运算符链接而成的式子
5 . 逗号表达式
从头到尾一直执行到最后一个子表达式,最后一个子表达式的结果就是最后一个表达式的结果
6 . 比较运算符-----比较表达式
<1> . 比较运算符 : == <= >= != < > =
<2> . 比较表达式 : 由比较运算符链接而成的式子
7 . 逻辑运算符-----逻辑表达式
<1> . 逻辑运算符 : && || !
<2> . 逻辑表达式 : 由逻辑运算符链接而成的式子
<3> . 逻辑优先级 : (1) 逻辑运算符优先级比比较运算符的优先级更高
(2) " !" > " && " > " || "
8 . 单目(一元)、双目(双元) 、三目(三元)运算符
<1> . 单目(一元)运算符:参与运算的操作数只有1个--------!
<2> . 双目(双元)运算符:参与运算的操作数只有2个--------+ = - && ||
<3> . 三目(三元)运算符:参与运算的操作数只有3个--------a>b?c:d
四 . 补充
1 . char数据
char类型的数据是可以参与算术运算的,当算术表达式中是一个char类型的数据,编译器会把char数据用ASCII码来代替
ASCII码的本质上就是一个整形的数据,然后再用ASCII码来参与算术运算
<1> . 大小写转换
ch - 32;
ch + 32;
<2> . 字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。
2 . switch - case语句
<1> . switch(表达式) 表达式中可以为任意表达式(只能是整形或者字符型)
<2> . case 值 : 值是常量表达式,不能是变量表达式