1、枚举类型使用常识
#include <stdio.h>
int main()
{
//int age;//取值的范围很大
//假如我的取值是有范围的,就像一年只有四季,这时就可以使用枚举类型的数据
// 同结构体一样,先定义枚举类型
// 1.定义枚举类型
enum season
{
// 实际枚举值都是整型常量,默认起始值为0,也可以修改起始值 spring = 1;之后的变量值依次加1
spring, //0 实际上spring是整型常量0,下面也是一样
summer, // 1
autumn, // 2
winter // 3
};
// 代表这种枚举变量类型的变量取值只能是以上四种,但是C语言是弱语法类型,enum season s = 123;如果赋值不是以上其中一种,也不会保错,使用枚举类型可读性比较好,易于交流。
// 2.定义枚举变量
enum season s = winter;
printf("%d\n",s); // 输出结果为3
// 0男 1女 -1不详
// int sex = -1;
// 用枚举类型代替以上
enum sex
{
man, woman, unkown
};
enum sex se = unkown;
return 0;
}
2、数据类型总结
一、基本数据类型
1、int
1> long int、 long 8个字节 %ld
2> short int、short 2个字节 %d %i(整型都可以换成%i)
3> unsigned int、unsigned 4个字节 %zd
4> signed int、signed、 int 4个字节 %i
2、float、 double
1> float 4个字节 %f
2> double 8个字节 %f %.2f表示保留2位小数
3、char
1> char 1个字节 %c %d
2> char类型保存在内存中的是它的ASCII值
'A' --> 65
二、构造类型
1、数组
1> 只能由同一种类型的数据组成
2> 定义:数组类型 数组名[元素个数];
2、结构体
1> 可以由不同类型的数据组成
2> 先定义类型,再利用类型定义变量
三、指针类型
1、变量的定义
int* p;
2、间接操作变量的值
int a = 10;
p = &a;
*p = 20;
四、枚举类型
使用场合:当一个变量只允许有几个固定取值时
3、全局变量与局部变量
/*
变量类型
根据变量的作用域,可以分为:
1.局部变量:
1> 定义:在函数(代码块)内部定义的变量(包括函数的形参)
2> 作用域:从定义变量的那一行开始,一直到代码块结束
3>生命周期:从定义变量那一行开始分配内存存储空间,直到结束回收,即代码块结束后,就会被回收。
4>没有固定的初始值
2.全局变量
1>定义:在函数外面定义的变量
2>作用域:从定义变量的那一行开始,一直到文件结尾(能被后面的所有函数共享)
3>生命周期:程序一启动,就会分配内存存储空间,程序退出时才会销毁。
4> 默认的初始值就是0
*/
#include <stdio.h>
int age;//全局变量如果没有赋初值的话,默认情况下是0,不像局部变量没赋初值的话,其值不确定。
void test()
{
//int age; //没有这个变量声明的话,主函数输出 0 , 10。 但是有这个变量声明的话,主函数输出 0 ,0;
age = 10;
//a = 10;
}
int main()
{
/*
int a = 10;
{
int b = 10;
}
*/
printf("%d\n",age);
test();
printf("%d\n",age);
return 0;
}
#include <stdio.h>
int a = 10;
int b, c = 20;
void test()
{
b++;
int i = 0;
i++;
printf("b=%d, i=%d\n", b , i);
}
int main()
{
test();
test();
test();
/*
输出结果是: b=1,i=1
b=2,i=1
b=3,i=1
*/
return 0;
}