目录
变量
概念:程序运行过程中发生变化的量
格式:存储类型 数据类型 变量名
(可省略)auto int a;
存储类型:决定变量存储位置
数据类型:决定开辟的空间大小
变量名:遵循标识符的命名规则
数据定义类型后一般自动存到栈区,auto省略
名称 | 字节大小 | 取值范围(了解) | |
int | 整型 | 4 | -2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647) |
char | 字符型 | 1 | -2^7(-128) ~ 2^7-1(127) |
short | 短整型 | 2 | -2^15(-32 768) ~2^15-1(32 767) |
long | 长整型 | 4 | -2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647) |
float | 单精度浮点型 | 4 | 有效位数6-7位 |
double | 双精度浮点型 | 8 | 有效位数15-16位 |
sizeof()查看数据类型字节大小
-2^31(-2 147 483 648) ~ 2^31-1(2 147 483 647)
printf("%d\n",sizeof(float));
double a=12345678912345.567892;
printf("%lf\n",a);
变量分为:局部变量、全局变量的区别
局部变量 | 全局变量 | |
定义位置 | 函数体内部 | 函数体外部 |
初值 | 未初始化时值为随机值 | 未初始化时值为0 |
存储位置 | 栈区 | 全局区 |
生命周期 | 同函数体共存亡 | 同程序共存亡 |
作用域 | 当前函数体内部 | 整个程序 |
(局部变量、函数参数)由系统自动开辟与释放空间
常量
程序运行过程中不会发生变化
字符常量
用单引号包裹
char a='w';
'w'--->字符
a---->变量
'n'字符n '\n'换行 '\八进制' '\x十六进制' \转义 \\:\
char w='A';
char w1='\071';
char w2='\x42';
printf("%c %c %c\n",w,w1,w2);
字符串常量
用双引号包裹,以'\0'作为结束标志
char a[]="hello";
整型常量
八进制 十进制 十六进制
浮点型常量
float 4字节 double 8字节
标识常量
格式:#define 宏名 常量或表达式或代码段
特点:只是单纯的替换,不进行运算
宏定义:起标识的作用,宏名遵循标识符命名规则,一般用大写表示
#include<stdio.h>
#define N 5
#define M N+2
#define NUM 2+M*2+1 //2+5+2*2+1
int main(int argc, char const *argv[])
{
printf("%d\n",NUM); //12
return 0;
}
结合三目运算符实现求两个数的最大值
#include<stdio.h>
#define MAX a>b?a:b
int main(int argc, char const *argv[])
{
int a=6,b=9;
printf("%d\n",MAX);
return 0;
}
//宏函数 了解
#include<stdio.h>
#define MAX(a,b) a>b?a:b
int main(int argc, char const *argv[])
{
printf("%d\n",MAX(8,6));
return 0;
}