头文件里的 < stdio.h > 相当于工具箱,这是个库文件,里面有printf,scanf…..等功能
·#include是导入头文件的预编译的指令,作用是导入如上面的< stdio.h >这种库
< stdio.h > 和 “stdio.h” 头文件是有区别的,< >是系统里面的库文件,“ ”着重于用户自定义的库。他们的搜索方式也不同,< >直接去找系统自提供的库,“ ”先找用户自定义的库,找不到就去系统再找
main() 函数,作为程序的唯一入口,有且仅有一个
\n表示换行,是转义字符
//是单行注释,/*……*/里面可以写多行注释
一个最基本的内存单元是1Byte(字节), 1Byte = 8bit(位)
整数分为有符号整数和无符号整数,有符号整数(2个字节)它的范围是2^-15——2^15-1 .那为什么不是16(2字节 * 8位)呢?因为一最高位拿来表示符号了
无符号整型:unsigned int . 像int , float , char前面没有unsigned都是无符号的,无符号默认是正数
16位编译器
char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 double: 8个字节l ong: 4个字节 long long: 8个字节 unsigned long: 4个字节
32位编译器
char :1个字节char*: 4个字节 short int : 2个字节int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 unsigned long: 4个字节
常量:取值不可变的量
1.整形常量
2.实型常量
3.字符型常量
4.符号常量序列(字符串)
假如把这个序列打引下来,你会发现只有abc,\0是空字符是转义字符是结束的标志
printf("abc\0ef\n")
- 转义字符
printf("I am W\n")
内存里是:
序列的空格也在内存中,\n是转义字符换行,\0是序列结束标志,写了7个字符其实内存有8位,最后一位是\0符号常量:用一个标识符表示常量,#define NUM 7;
,#define是预编译指令,凡是以#开头的指令在程序执行进行前就执行了,这就是全局变量的原理,改了前面的数字就改变了全部,列如下面的代码:
#define NUM 7
int a = NUM;
int b = NUM;
#define NUM2 7
printf("He say,he is %d years old\n",NUM2);
%d 十进制整数占位符
%c 字符占位符
%f(.2f) 浮点类型占位符(小数部分占2位)
%i 十进制、八进制、十六进制整数占位符
%p 地址占位符(指针占位符)
%s 字符串占位符
%x(X) 十六进制整数占位符
%o 八进制整数占位符
%% 输出%
- 标识符:是用户在编程时通过C语言的字符为变量以及函数指定名子
标识符是由数字,字母,下划线组成,首字母不能是数字,还不能和关键词重复
1 数据类型关键字(12个):
(1) char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
(4) float:声明浮点型变量或函数
(5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数
(7) short :声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
(10) union:声明联合数据类型
(11) unsigned:声明无符号类型变量或函数
(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
(2)控制语句关键字(12个):
A循环语句
(1) for:一种循环语句(可意会不可言传)
(2) do :循环语句的循环体
(3) while :循环语句的循环条件
(4) break:跳出当前循环
(5) continue:结束当前循环,开始下一轮循环
B条件语句
(1)if: 条件语句
(2)else :条件语句否定分支(与 if 连用)
(3)goto:无条件跳转语句
C开关语句
(1)switch :用于开关语句
(2)case:开关语句分支
(3)default:开关语句中的“其他”分支
D
return :子程序返回语句(可以带参数,也看不带参数)
3 存储类型关键字(4个)
(1)auto :声明自动变量 一般不使用
(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量
(4)static :声明静态变量
4 其它关键字(4个):
(1)const :声明只读变量
(2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用
(4)volatile:说明变量在程序执行中可被隐含地改变
变量的定义
int a ; // 数据类型说明 + 标识符
定义一个整型变量,定义的过程就是申请内存的过程,根据数据类型决定内存大小,这个内存是在栈中,我们给这个变量定义的数据在数据区,当printf的时候从数据区赋值出一份给a变量的初始化
1.给定一个有意义的初始量
2.清理内存的垃圾值
int a=0; //a = 0表是清理了垃圾值,如果是非0就是正常赋值
- 变量的赋值
1.初始化定义时直接赋值
2.赋值是变量的定义和赋值分开
int a;
...
...
a = 7;