c语言学习笔记
c语言关键字
c语言关键字一共有32个
- 数据类型关键字(12个)
char,short,int,long,float,double,
unsigned,signed,struct,union,enum,void - 控制语句关键字
if,else,switch,case,default,for,do,while,
break,continue,goto,return - 储存类关键字
auto,extern,register,static,const - 其他关键字
sizeof,typedef,volatile
标识符
1.不能使用系统关键字;
2. 允许使用字母数字下划线;
3. 不允许数字开头;
4. 标识符区分大小写;
5. 见名知义;
转义字符
转义字符 | 含义 |
---|---|
\a | 警报 |
\b | 退格(BS),将当前位置移到前一列 |
\f | 换页(FF),将当前位置移到下页开头 |
\n | 换行(LF),将当前位置移到下一行开头 |
\r | 回车(CR),将当前位置移到本行开头 |
\t | 水平制表(HT) (跳到下一个TAB位置) |
\v | 垂直制表(VT) |
\ | 代表着一个反斜杠字符“\” |
\ ’ | 代表一个单引号(撇号)字符 |
\ " | 代表一个双引号字符 |
\ ? | 代表一个问号 |
\0 | 数字0 |
\ddd | 8进制转义字符,d范围0~7 |
\xhh | 16进制转义字符,h范围0~9, a~ f,A~F |
C语言如何表示相应进制数
进制 | 表示方式 |
---|---|
二进制 | c语言不能直接书写二进制数 |
八进制 | 以数字0开头,如0123 |
十进制 | 以正常数字1~9开头,如123 |
十六进制 | 以0x开头,如0x123 |
计算机内存数值存储方式
- 原码
一个属的原码(原始的二进制码)有以下特点- 最高位做为符号位,0表示为正,1表示为负
- 其他数值部分就是数值本身绝对值的二进制数
- 负数的原码就是在其绝对值的基础上最高位变成1
原码的设计不便于加减计算
- 反码
正数的反码还是正数本身,负数的补码就是其绝对值相同的正数取反的结果。即在原码的基础上,符号位不变,其他位取反的结果。
反码的设计依旧不便于加减计算 - 补码
正数的补码就是正数本身,负数的补码就是其原码取反加一的结果。补码设计的目的,就是讲将原二进制数,分一半做负数,而取反加一的规律则是在此设计的基础上归纳得来的。所以,使用“取反加一”来定义补码,是与设计相悖的。
补码的设计,方便了二进制的加减运算
在计算机系统中,数值一律用补码来存储 ,主要原因是: - 统一了零的编码
- 将符号位和其他位统一处理
- 将减法运算变成加法运算
- 两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃
下面的数值以1字节的大小描述:
十进制数 | 原码 | 反码 | 补码 |
---|---|---|---|
+15 | 0000 1111 | 0000 1111 | 0000 1111 |
-15 | 1000 1111 | 1111 0000 | 1111 0001 |
+0 | 0000 0000 | 0000 0000 | 0000 0000 |
-0 | 1000 0000 | 1111 1111 | 0000 0000 |
运算符与表达式
- 常用运算符分类
|
运算符类型 | 作用 |
---|---|
算术运算符 | 用于处理四则运算 |
赋值运算符 | 用于将表达式的值赋给变量 |
比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
逻辑运算符 | 用于根据表达式的值返回真值或假值 |
位运算符 | 用于处理数据的位运算 |
sizeof运算符 | 用于求字节数长度 |
- 算术运算符
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
+ | 正号 | + 2 | 2 |
- | 负号 | - 2 | - 2 |
+ | 加 | 1+ 1 | 2 |
- | 减 | 3- 1 | 2 |
* | 乘 | 1 * 2 | 2 |
/ | 除 | 2/ 1 | 2 |
% | 取余 | 11% 3 | 2 |
++ | 前自增 | a= 1; b= ++ a; | a= 2;b= 2; |
++ | 后自增 | a= 1;b= a++ ; | a= 2;b= 1; |
-- | 前自减 | a= 1;b= -- a; | a= 0;b= 0; |
-- | 后自减 | a= 1;b= a-- ; | a= 0;b= 1; |
- 赋值运算符
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | a= 2;b= 3; | a= 2;b= 3; |
+= | 加等于 | a= 0;a+= 2; | a= 2; |
-= | 减等于 | a= 5;a-= 3; | a= 2; |
*= | 乘等于 | a= 2;a*= 2; | a= 4 |
/= | 除等于 | a= 4;a/= 2; | a= 2 |
%= | 模等于 | a= 3;a%= 2 | a= 1 |
- 比较运算符
c语言的比较运算里,“真”用数字 “1”来表示,“假”用数字“0”来表示。
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 4== 3 | 0 |
!= | 不等于 | 4!= 3 | 1 |
< | 小于 | 4< 3 | 0 |
> | 大于 | 4> 3 | 1 |
<= | 小于等于 | 4<= 3 | 0 |
>= | 大于等于 | 4>= 3 | 1 |
- 逻辑运算符·
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
! | 非 | ! a | 如果a为真,则! a为真; 如果a为真,则 ! a为假。 |
&& | 与 | a&& b | 如果a和b都为真,则结果为真 否则结果为假 。 |
|| | 或 | a|| b | 如果a和b有一个为真,则结果为真, 二者都为假时,结果为假。 |
嵌套循环
循环语句之间可以相互嵌套
例如:用嵌套循环写一个打印九九乘法口诀的代码
# include<stdio.h>
int main()
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
printf("%d*%d=%d\t",j,i,i*j);
}
printf("\n");
}
return 0;
}
输出如下