变量与常量
变量
概念:在程序的运行过程中会发生变化的量
定义格式:存储类型 数据类型 变量名;
例:
(auto) int a;//定义一个整型变量a
int a=10;
a=20
存储类型 决定变量的位置
数据类型 决定变量开辟的空间大小
变量名 遵循标识符的命名规则
数据类型
名称 | 字节 | 取值范围(了解) |
int | 4 |
-2^31 ~ 2^31 -1
|
char | 1 |
-2^7 ~ 2^7-1
|
short | 2 |
-2^15 ~ 2^15 -1
|
long | 32位:4 64位:8 |
32:-2^31 ~ 2^31 -1
64:-2^63 ~ 2^63 -1 |
float | 4 |
有效位数:6-7
|
double | 8 |
有效位数15-16
|
变量的分类
- 全局变量:定义在函数的外部,在整个程序中都可以被访问
- 局部变量:定义在函数的内部,在整个函数中都可以被访问
全区变量跟局部变量的区别
局部变量 | 全局变量 | |
定义位置 | 函数内部 | 函数外部 |
初始值(不赋值时) | 随机值 | 0 |
作用域 | 整个函数中都可以 | 整个程序中都可以 |
生命周期 | 同整个函数共存亡 | 同整个程序共存亡 |
存放位置 | 栈区 | 全局存储区 |
常量
概念:在程序中不会变化的量
分类:字符型常量,字符串型常量,整型常量,浮点型常量,指数常量,标识常量
字符型常量
使用单引号' '包裹的内容都叫字符,单引号只能引一个字符
'a'---->字符常量a
a----->变量a
‘!'------>字符!
'1'----->字符1
'\n'----->换行
\ : 转义 后面可以跟随字母,符号,数字(八进制 十六进制 不写0)
转义字符表示一个字符
'\x41'---->'\101'----->'A'
printf("你说:\"sakfkasfh\" ");
'\\'---->字符 \
'\?'---->字符 ?
字符串常量
使用双引号" "包裹的内容都叫字符串,
系统会在字符串最后添加\0作为字符串结束的标志
"hello"----》字符串hello 字符的
长度+1
整型常量
1 2 3 4 5 6
浮点型常量
1.9 1.32
指数常量
3*10^2----->3e2
2*10^5------>2e5
注意:e的后面不能跟小数 只能是整数
标识常量
宏定义:
用于标识常量或者表达式 宏替换 宏代替
定义格式:#define 宏名(一般大写) 常量或者表达式
int fristname=10;
//大驼峰:FristName
//小驼峰:fristName
#define N 10
特点:制作单纯的替换,不会进行计算
#define N 2
#define M N+3 //2+3
#define NUM N+M/2+1 //2+2+3/2+1=2+2+1+1=6
void main()
{
int a = NUM;
printf("%d\n",a); //6
}