【C语言学习笔记】
1. 运算符的表示
-
用逻辑运算符代替
if、else if等条件语句 可使写出来的代码不那么冗长"&&"表示同时都要满足
"||"表示二者或多者只满足其中一个即可
[同时满足三角形两边之和大于第三边且两边之差小于第三边才输出1] //普通方式: if (a+b>c&&abs(a-b)<c){ printf("1"); } else if (a+c>b&&abs(a-c)<b){ printf("1"); } else if (b+c>b&&abs(b-c)<a){ printf("1"); } //用运算符: if (a+b>c&&abs(a-b)<c||a+c>b&&abs(a-c)<b||b+c>b&&abs(b-c)<a){ printf("1"); }
-
后缀++优先于前缀++
eg :x+++y 等价于 (x++)+y
-
C语言中没有 ^ 符号,也没有乘方运算符
2. 变量
1. 变量类型
-
局部变量 {}内定义的变量
-
全局变量 {}外定义的变量
Tips: ①当全局变量和局部变量名字冲突时,局部变量优先
2. 换变量
eg : 让a、b的值互换
-
法一:引入一个新变量
t=a; a=b; b=t;
-
法二:用两个变量进行关系式的运算 (a+b、a*b…)
a=b+a; b=a-b; a=a-b;
【总结】换变量时,不引入常量会更加通用
3. 常量
1. 常量类型
-
字面量常量 固定的值 (eg:3.14、22L、33.3F…)
-
当一个字面量想表达是unsigned时,在后面加u或U
-
如果要表示一个long型,则加 l或L后缀
-
如果要表示单精度浮点型,加f或F后缀
-
-
const修饰的常变量
-
define 定义的标识符常量
-
枚举常量
4. 三大循环语句
-
for循环-
语句括号里的三个语句不需要的可省略,但分号不可省略
-
适用于知道变量范围或者循环次数的情况
-
语句的功能更强
-
-
辨析
do-while&while循环-
do-while循环是完成一轮循环之后在判断是否进行下一次循环
-
while循环则是每轮循环开始前先判断是否具有循环的条件
-
5. 数据类型
创建变量,向内存申请空间 (可参考链接)
-
整数型:
char字符数据类型short短整型int整型long长整型longlong更长的整型 -
浮点型:
float单精度浮点小数double双精度浮点小数long double长双精度型
类型大小 用类型 占位符 char%cshort%hdint%dlong%ldlong long%lldsizeof查看变量或者类型大小 
6. 浮点类型
-
float 、double 、long double
类型 scanf prinft 有效数字 float %f %f,%e 7 double %lf %f,%e 15 long double %Lf %Lf 看平台和编译器 PS:①%e为以科学计数法来表示 ②在%和f之间加上.n可以指定输出小数点后几位,这样的输出是4舍5入的(可参考链接)
-
超过范围的浮点数
-
printf输出inf表示超过范围的浮点数
-
printf输出nan表示不存在的浮点数
-
7.字符类型(char)
char 称为字符类型,存储的是字符对应的 ASCII 码值
1.字符的表示
-
用单引号来表示字符字面量 eg:'a' '1'
-
printf和scanf里用%c来输入输出字符
2.混合输入
-
scanf("%d %c",&i,&c);中间有空格,读完整数后,会读空格后面的字符 -
scanf("%d%c",&i,&c);中间无空格,读完整数后,若有空格会读空格(空格也是字符)
3. 字符计算
-
一个字符加一个数字得到ASCII码表中那个数后面的字符
char c='A'; c++; printf("c=%c",c);//运行结果:c=B -
两个字符的减,得到它们在表中的距离
int i='Z'-'A'; printf("i=%d",i);//运行结果:i=25(共有26个大写字母) -
大小写转换
eg:a+'a'-'A'可以把大写字母变成小写字母
a+'A'-'a'可以把小写字母变成大写字母
8.逃逸字符(转义字符)
无法打印出来的控制字符或特殊字符,这些字符以反斜线
\开头,后面接着一个字符
| 字符 | 意义 | 字符 | 意义 |
|---|---|---|---|
\b | 回退一格(\b后面的字符退到前面一格) | \" | 双引号 |
\t | 到下一个表格位 | \' | 单引号 |
\n | 换行 | \\ | 反斜杠符 |
\r | 回车 | \f | 翻页符 |
9. 数据转换
1. 自动类型转换
-
当运算符左右两边操作数的类型不一致时,会自动转换成表达的数的范围更大的类型(整数和浮点在一块,整数会自动换成浮点)
-
整型:
char→short→int→long→long long -
浮点型:
int→float→double→long double
-
-
对于printf,任何小于int的类型会被转换为int,float会被转换为double;但scanf不行
2. 强制类型转换
通常是当把一个较大的类型转换成较小的类型
-
写法:(转换后的类型)值 eg:(int)10.2 (short)32
PS:此时,要注意安全性(超过范围不能表示)
-
强制类型转换的优先级高于四则运算
double a=2.0;double b=1.0 int i=(int)a/b;//先转换a的类型再做除法,此时i=2.0 int i=(int)(a/b);//先做除法再转换类型,此时i=2
10. 布尔类型(bool)
-
使用前需要加上头文件
#include <stdbool.h> -
只有两种值(
true和false)
更多推荐
https://blog.csdn.net/m0_62912975/article/details/123928629?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%AD%97%E9%9D%A2%E9%87%8F%E5%B8%B8%E6%95%B0c%E8%AF%AD%E8%A8%80&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-123928629.142%5Ev94%5Einsert_down28v1&spm=1018.2226.3001.4187

所有评论(0)