总结一下今天的学习内容。
c语言之父:丹尼斯·里奇
数据类型
1.数据类型基本知识点
- 什么是数据类型:在数据结构中数据类型是一个值的集合以及定义在这个值集上的一组操作。变量是用来存储值的所在处,它们有名字和数据类型。
- 数据类型有哪些:
1、char:字符型;
2、short :短整型
3、int:整型
4、long :长整型
5、float:单精度浮点型
6、double:双精度浮点型
- 强制类型转换:一种类型显示转化为另一种类型的过程。
2.数据类型重要知识点
数据类型 | 字节长度 | 取值范围 |
char | 1type | -128~127 |
short | 2type | -32768~32767 |
int | 4type | -2147483648~2147483647 |
long | 8type | -2147483648~2147483647 |
float | 4type | 1.175e-38~ 3.402823e+38 |
double | 8type | 2.225e-308~1.797693e+308 |
- 符号与无符号
有符号的数值类型有一位作为符号位,无符号则没有
3.变量与常量
- 声明与定义的区别?
变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。
变量声明:用于向程序表明变量的类型和名字。
定义也是声明:当定义变量时我们声明了它的类型和名字。
- 全局变量与局部变量区别?
1.局部变量
局部变量根据定义形式的不同,又分为如下三种。
1.形参:在定义函数签名时定义的变量,形参的作用域实在整个函数内有效。
2.函数局部变量:在函数体内定义的局部变量,它的作用域是从定义该变量到函数结束。
3.代码块局部变量:在代码块中定义的局部变量,这个局部变量的作用域是从定义到该代码块结束。
2.全局变量
在一个函数内部,如果全局变量和局部变量同名,那么局部变量将会覆盖全局变量,意味着在该函数内部,全局变量会失效。
如果在源程序的结尾部分定义全局变量,又希望在前面的各函数中使用的这些全局变量,这就需要在这些函数中
声明全局变量。声明全局变量使用extern关键字,语法格式如下:
extern 类型 全局变量名;
-
动态存储与静态存储
动态存储:程序在运行期间根据需要动态分配内存的存储方式。
静态存储:程序在运行开始就分配固定内存的存储方式。
4.格式化输出与输入
- 格式化输出函数:printf
调用格式:
printf()函数的调用格式为:printf("格式化字符串",输出表列)
。
格式化字符串包含三种对象,分别为:
(1)字符串常量;
(2)格式控制字符串;
(3)转义字符。
字符串常量原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式控制字符串和各输出项在数量和类型上应该一一对应。其中格式控制字符串是以%开头的字符串,在%后面跟有各种格式控制符,以说明输出数据的类型、宽度、精度等。
格式控制字符串
printf的格式控制字符串组成如下:
%[flags][width][.prec][length]type
%[标志][最小宽度][.精度][类型长度]类型
基本type类型
d /i 十进制数
f/lf 单,双精度浮点数
c 字符
s 字符串
- 格式化输入函数:scanf
调用格式 :
scanf("< 格式化字符串 >" , < 地址表 >)
scanf() 函数是通用终端格式化输入函数,它从标准输入设备 ( 键盘 ) 读取输入的信息。可以读入任何固有类型的数据并自动把
数值变换成适当的机内格式。
其控制串由三类字符构成:
1 格式化说明符;
%a 读入一个浮点值
%c 读入一个字符
%d 读入十进制整数
%s 读入一个字符串
%f 读入一个浮点数
2 空白符;
空白字符会使 scanf() 函数在读操作中略去输入中的一个或多个空白字符。
3 非空白符;
一个非空白字符会使 scanf() 函数在读入时剔除掉与这个非空白字符相同的字符。
右左定则,用于判断变量类型。
一些基础循环语句如 if,while,switch等
if的判断语句可以把数字写在左边,if(5==num),将else补全;
switch将default补全;
i++,++i,func(i++,++i)i++ 变成数值,++i变成变量。