数据
一、是什么?
数据就是数值.数据有很多种,最简单的就是数字.数据也可以是 文字,图像,声音等
二、有什么用?
保存我们的记录,用于以后使用
三、怎么用?
由0和1组成,用设备存储
四、什么时候用?
当你需要对数据进行操作使用时
五、有什么特点?
1.分为静态数据和动态数据(内存)
2.只由0和1组成
3.最小单位是bit
1byte字节=8bit
常量
一、是什么?
是一些固定的数据,有四大类型;整型 浮点型(单行度和双精度) 字符型 字符串型
二、有什么用?
表示一些固定不变的数据
三、怎么用?
字面常量.
比如: 1 //整型字面常量 1.0f //单精度字面常量
'a' //字符字面常量(只能是一个非中文字符) "hello world"字符串字面常量
字符串常量与字符常量不同的地方是,字符串常量是用""把字符串括起来,所以'a'和"a"是不一 样的,而且系统会在字符串常量的末尾自动加一个字符串结束标志('\0')。
符号常量(也叫常变量):即用一个标识符来表示常量,一般用const来指明
如 :constint MAX_SIZE = 365;//定义一个符号常量MAX_SIZE.
也可以使用宏定义,通过预处理指令来替换符号常量
如:上面的MAX_SIZE可以写成#define MAX_SIZE 365
四、什么时候用?
当需要给变量赋值或者定义一个不变的数据
五、有什么特点?
数据不会被改变!
变量
一、是什么?
变量来源于数学,是计算机语言中能存储计算结果或 者能表示 值抽象概念
变量是内存的一块儿存储单元用来存储经常变化的数据
变量由两要素构成:变量名与变量类型。
变量类型+变量名 = 变量
二、有什么用?
用来表示一个需要改变或者不确定的数据
变量分为全局变量,局部变量。全局变量定义在函数外部,程序开始到结束都一直在,而局部 变量定义在函数内部,只能供函数使用,在函数内部有效
三、怎么用?
变量类型+变量名 如;int num;
赋值: num = 1; 修改 num = 2;
四、什么时候用?
需要定义一个经常改变或者不确定的数据
五、有什么特点?
1.创建一个变量相当于在内存中占用了一块空间
2.这个空间的大小是固定的,但是里面的数据可以改变
3.同一个作用域内不能有相同的变量名
4.初始化时创建,在函数作用域执行完后失效,且内存空间释放
变量输出及printf函数用法
一、是什么?
C语言下的printf()函数是样式化输出函数,由C语言自带的库提供
二、有什么用?
在控制台上按照你需要的格式输出你定义的数据
三、怎么用?
1.#include//引入头文件,表示在这个文件里要用到里面的printf()函数
2.printf("<格式化字符串>",<参量表>)
3.格式化规定字符,以%开始 后面跟一个或几个规定的字符
常用%d整数, %f浮点数 %c单个字符 %s字符串%p指针的值
四、什么时候用?
当你想输出结果的时候
五、有什么特点?
1.可以单个输出,也可以加批量输出,以逗号分割
2.格式化是%开始. %前面可以加任意的字符串,会按原样输出.
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字符
下面对组成格式说明的各项加以说明:
1%:表示格式说明的起始符号,不可缺少。
2-:有-表示左对齐输出(右侧补空格),如省略表示右对齐输出(左侧补空格)。
30:有0表示指定空位填0,如省略表示指定空位不填。
4m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型 数的小数位数。对数值型的来说,未指定n时,隐含的精度为n=6位。
5l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
格式字符 格式字符用以指定输出项的数据类型和输出格式。1d格式:用来输出十进制整数。有以下几种用法:%ld:输出长整型数据。
2o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽 度用“%mo”格式输出。
例:
main()
{ int a = -1; printf("%d, %o", a, a);
}
运行结果:-1,177777程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为 (177777)8。
3x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段 宽度用"%mx"格式输出。
4u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽 度用“%mu”格式输出。
5c格式:输出一个字符。
6s格式:用来输出一个串。有几中用法
%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串 长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格,注 意:如果n未指定,默认为0。%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n 值,即保证n个字符正常输出,注意:如果n未指定,默认为0。
如果是sprintf(desc, "%m.ns", sour); 如果desc空间够的话,会在%m.ns 串 的结尾自动补null 字符,不同于strncpy。
例如 :sprintf(desc, "%.3s", "123456");desc如果空间>=4字节的话,第4个字节将是null字 符。
%f输出精度: 7个有效数字,小数点后8位.
变量的初始化
int a; //不会报错,a里面存的内容:
1)随机数
2)上次程序分配的存储空间,存数一些 内容,“垃圾”
3)系统正在用的一些数据
1)定义的同时进行初始化
int a = 10;
int a,b=10; //部分初始化
int a=4,b=2;
2)先定义,后初始化
int a;
a = 10;
3)使用一个变量进行初始化
int a;
int b = 10;
a = b; //使用b去初始化a
4)还可以批量的进行初始化
int a,b,c;
a = b =c =0;
注意: 变量的第一次赋值被成为称为初始化,以后再赋值相当于覆盖了上一次的值
变量的使用:
注意:
(1)赋值的时候,= 号的左侧必须是变量(10=b,错)
(2)规范:习惯将 = 的两侧 各加上一个 空格
变量作用域:
C语言中所有变量都有自己的作用域,申明变量的类型不同,其作用域也不同。C语言中的变 量,按照作用域的范围可分为两种, 即局部变量和全局变量。
局部变量
关于局部变量的作用域还要说明以下几点:
(1)主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中 也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。
(2)形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
(3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不 干扰,也不会发生混淆。虽然允许在不同的函数中使用相同的变量名,但是为了使程序明了易 懂,不 提倡在不同的函数中使用相同的变量名
全局变量
全局变量也称为外部变量,它是在函数外部定义的变量。
全局变量的说明符号为 extern
对于全局变量还有以下几点说明:1.对于局部变量的定义和说明,可以不加区分。而对于外部变量则不然,外部变量的定义和外部变量的说明并不是一回事。外部变量定义必须在所有的函数之外,且只能定义一次。其一般形式为: [extern] 类型说明符 变量名,变量名... 其中方括号内的extern可以省去不写。
例如: int a,b;等效于:extern int a,b;
2.而外部变量说明出现在要使用该外部变量的各个函数内,在整个程序内,可能出现多次,外部变量说明的一般形式为: extern 类型说明符 变量名,变量名,...; 外部变量在定义时就已分配了内存单元,外部变量定义可作初始赋值,外部变量说明不能再赋初始值, 只是表明在函数内要使用某外部变量。
3.外部变量可加强函数模块之间的数据联系,但是又使函数要依赖这些变量,因而使得函数的
独立性降低。从模块化程序设计的观点来看这是不利的, 因此在不必要时尽量不要使用全局变量。
4.在同一源文件中,允许全局变量和局部变量同名。在局部变量的作用域内,全局变量不起作用(就近原则).
为了合理的使用内存空间,所以变量一定要区分类型