1.常量和变量
常量
整型常量
如 1000, 12345, 0,-345 等都是整型常量。
实型常量
实型常量有两种表示形式:
a. 十进制小数形式, 由数字和小数点组成。
b. 指数形式(12.34e3 )
字符常量
- 普通字符
用 ’ ’ 括起来的一个字符
- 转义字符
以字符“\” 开头的字符序列
- 字符串常量
字符串常量是双撇号中的全部字符( 但不包括双撇号本身)。 - 标识符常量
#define 定义的常量
使用符号常量的优点:
a. 含义清楚
b. 在需要改变程序中多处用到的同一个常量时, 能做到“一改全改”
- 枚举常量
- const修饰的常变量
#include <stdio.h>
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
3.14;//字面常量
1000;//字面常量
const float pai = 3.14f; //const 修饰的常量
pai = 5.14;//ok?
#define MAX 100 //#define的标识符常量
return 0;
}
- 转义字符
变量
定义变量
int age = 150;
float weight = 45.5f;
char ch = 'w';
变量必须先定义后使用
变量的分类
- 局部变量
- 全局变量
#include <stdio.h>
int global = 2019;//全局变量
int main()
{
int local = 2018;//局部变量
//下面定义的global会不会有问题?
int global = 2020;//局部变量
printf("global = %d\n", global);
return 0;
}
当全局变量和局部变量同名是,局部变量优先使用
- 常变量
const int a=3;
表示 a 被定义为一个整型变量, 指定其值为 3, 而且在变量存在期间其值不能改变。
- 常变量与变量的的区别:
常变量具有变量的基本属性, 有类型, 占存储单元, 只是不允许改变其值。- 常变景与符号常量的区别 :
预编译指令, 它只是用符号常量代表一个字符串, 在预编译时仅是进行字符替换 ,而常变景要占用存储单元, 有变量值, 只是该值不改变而己
变量的作用域
作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的;而限定这个名字的可用性的代码范围就是这个名字的作用域。
- 局部变量的作用域是变量所在的局部范围。
- 全局变量的作用域是整个工程。
变量的生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。
2.数据类型
概述
C 语言要求在定义所有的变量时都要指定变景的类型, 常量也是区分类型的。
类型是对数据分配存储单元的安排, 包括存储单元的长度( 占多少字节) 以及数据的存储形式。
不同的类型分配不同的长度和存储形式。
数据类型
C 语言允许使用的类型, 如图所示, 图中有*的是 C99 所增加的
1.整型数据
- 分类
在存储单元中的存储方式是: 用整数的补码形式存放。
2.浮点型数据
- 分类
其数值以规范化形式存放在存储单元中(IEEE754标准)
3.字符型数据
- 字符变量
- ASCII字符集
#include <stdio.h>
int main()
{
printf("%d\n", sizeof(char));//1
printf("%d\n", sizeof(short));//2
printf("%d\n", sizeof(int));// 2(4)
printf("%d\n", sizeof(long));//4
printf("%d\n", sizeof(long long));//8
printf("%d\n", sizeof(float));//4
printf("%d\n", sizeof(double));//8
printf("%d\n", sizeof(long double));//16(8)
return 0;
}