掌握:关键字与标识符
一共32个关键字
标识符:
命名规则:字母、数字、下划线和$
特点:
不能以数字开头;12_usr.错误的
不能和关键字同名;
严格区分大小写;
起名要有意义;
便于识别(驼峰命名)myName,userIdFlag
main也是一个标识符
数据:
特点:分为静态数据(硬盘,断电还能保存)和动态数据(数据加载在内存,断电则无);
由0和1构成;
最小单位是bit
MB和Mb区别:
10M的光纤(10Mb)实际下载速度,10Mbps/8=1024kb/8 = 128kB/s
数据类型:
基本数据类型:
数值:整数和浮点数
字符型:字符型和字符串型
构造类型
空类型
指针类型
变量的特点:
1. 创建一个变量相当于占用了一块内存空间
2. 这个空间大小固定,具体数据可以变化
3. 同一作用域内不能有相同的变量名
4. 初始化时创建,在函数或者代码块结束的时候释放内存空间
作用域:
1. 不同函数属于平行作用域
2. 嵌套:作用域可以嵌套使用,子作用域可以用外部的变量(就近原则)
3. 有效:子作用域内定义的变量只在当前作用域内有效,在父作用域用不了
变量的内存分析:
1. 基本单位:内存的基本单位是byte,每一个字节都有自己的地址;
2. 变量创建后就占用一片固定内存;
3. 不同类型的变量在不同编译环境占用的内存大小不一样
不同数据类型在16位,32位,64位编译器占的内存大小:
char,1,1,1
int,2,4,4
float,4,4,4
double,8,8,8
4. lu:long unsigned int:输出内存占用printf(“sizeof(int) = %lu\n”,sizeof(int));
5. 变量创建后会分配一个地址:占用的第一个字节的首地址;
6. %p:格式化字符,输出地址
7. 内存从地址寻址是从大到小,即从高地址向低地址给变量分配内存空间;
8. 变量应该先赋值后使用(否则没意义)
输入输出函数printf和scanf
相同点:
格式类似;
都是C语言标准的库函数
不同点:
一个是输入函数,一个是输出函数;
scanf格式化字符串之后不用\n,因为本身输入的时候回车就表示换行,如果用\n会出现无法退出程序的错误
printf后面是跟变量名,scanf是跟地址
scanf(“%*c%c”,&a);//%*c忽略一个字符
基本语法分析:
算术运算:+ - * / %
%%:输出%
特点:
1. 不同数据类型精度不同:double>float>int,%只针对整数
2. 高精度向低精度赋值,会丢失精度:int a = 1.8;//1
3. 优先级:* / % > +和-
4. 运算时两个数据精度不一样,会自动转换,且是低精度转为高精度
5. 同精度的数据运算只能得到同精度的结果,要想提高的话,需要强制类型转换double a = 1.2;int b = (int)a;
赋值以及自增自减运算
特点:
变量才能自增自减,常量不能;
++a和a++对a本身无区别,但进行其他运算时,a++无变化
sizeof运算符:
C语言关键字,一个单目运算符;
以字节方式给出其操作数或者数据类型的存储空间大小
sizeof(int)
sizeof(1)
sizeof a 或者sizeof(a)
sizeof跟数据类型的时候必须加括号
特点:
1. 根据编译环境计算字节的大小
2. sizeof(‘a’) = 4 //’a’对应的ASCII码为97,对应的int型内存占4个字节
3. char b = ‘a’;sizeof(b) //1,相当于char型占的内存字节
4. lu:long unsigned int
5.
|
|