1.变量的作用
程序是用来处理数据的,待处理的数据需要存储起来,变量就是用来存储数据的。
2.变量的实质
变量的本质就是一块内存空间,这块内存空间里面的值是可以修改的。
3.变量的三要素:
变量名 变量地址 变量的空间大小
变量名:是属于标识符的一种,对于标识符的书写有一系列规则
1,不能是关键字
2,由字符或下划线+数字组成
3,字母区分大小写
变量名的命名做到见名知意,尽量采用:小写加下划线(user_name)、小驼峰法(userName)、大驼峰法(UserName)
4.变量类型
含义:
1.指定变量开辟多大的内存空间来存储数据
2.指定数据能否进行运算,以及运算规则是什么
分类:
1.基本数据类型。大小跟编译器内置大小有关。
1.整型(short /int/long /long long)
2.浮点型(float/double)
3.字符型
2.自定义数据类型。大小和定义有关系
3.指针类型 。基本类型的指针、自定义类型的指针。
每一种类型都有:空间大小、取值范围、输入和输出、有无符号之分(只有整数才有,小数没有)
short类型:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
// C语言常量
#define MAX_VALUE 1000000
// 1. short 类型的输入和输出
void test01()
{
// 1.1 无符号、有符号 short 类型的输入和输出
short s = 100;
printf("有符号 short 类型 s 变量的值是: %hd\n", s);
unsigned short us = 100;
printf("无符号的 short 类型 us 变量的值是: %hu\n", us);
// 1.2 short 类型占用的内存大小 sizeof
int short_size = sizeof(short); // 先执行等号右侧, 将结果赋值给等号左侧的变量
printf("short 类型占用的内存大小是: %d\n", short_size);
printf("short 类型占用的内存大小是: %d\n", sizeof(short));
printf("unsigned short 类型占用的内存大小是: %d\n", sizeof(unsigned short));
// 1.3 short 类型和 unsigned short 类型的取值范围
printf("short 类型最小值是: %hd, 最大值是: %hd\n", SHRT_MIN, SHRT_MAX);
printf("unsiged short 类型最小值: 0, 最大值是: %hu\n", USHRT_MAX);
// 1.4 short 类型输入操作 scanf
short shrt_number = 0;
printf("请输入一个 short 类型的数字:");
// %hd 表示按照 short 类型输入, &shrt_number 表示键盘输入数据之后,数据存储到内存中哪个位置
scanf("%hd", &shrt_number); // 阻塞等待
printf("您输入的 short 类型的值是: %hd\n", shrt_number);
unsigned short ushrt_number = 0;
printf("请输入一个 unsigned short 类型的数字:");
scanf("%hu", &ushrt_number);
printf("您输入的 unsigned short 类型的值是: %hu\n", ushrt_number);
}
int main()
{
test01();
return 0;
}
int类型:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
// C语言常量
#define MAX_VALUE 1000000
// 2. int 类型的输入和输出(整型)
void test02()
{
// 2.1 int 类型和 unsigned int 类型输入和输出
int i = 100;
printf("i = %d\n", i);
unsigned int ui = 666;
printf("ui = %u\n", ui);
// 2.2 int 类型占用的内存大小(4字节)
printf("int 类型占用的内存大小: %d\n", sizeof(int));
printf("unsigned int 类型占用的内存大小: %d\n", sizeof(unsigned int));
// 2.3 有符号、无符号类型取值范围
printf("int 类型的最小值:%d, 最大值:%d\n", INT_MIN, INT_MAX);
printf("unsigned int 类型最小值: 0, 最大值: %u\n", UINT_MAX);
// 2.4 int类型 变量输入
int inumber = 0;
printf("请输入 int 类型的值:");
scanf("%d", &inumber);
printf("您输入的 int 类型的值是: %d\n", inumber);
unsigned int uinumber = 0;
printf("请输入 unsigned int 类型的值:");
scanf("%u", &uinumber);
printf("您输入的 unsigned int 类型的值是: %u\n", uinumber);
}
int main()
{
test02();
return 0;
}
long类型:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
// C语言常量
#define MAX_VALUE 1000000
// 3. long 类型的输入和输出(长整型)
void test03()
{
// 1. long 类型和 unsigned long 类型输出
long l = 888;
printf("l = %ld\n", l);
unsigned long ul = 888;
printf("ul = %lu\n", ul);
// 2. long 类型占用的内存大小
// long 的大小不能比 int 小
// gcc 编译器 long 类型占8个字节
printf("long 的内存大小是:%d\n", sizeof(long));
// 3. long 取值范围
printf("long 类型的最小值:%ld, 最大值:%ld\n", LONG_MIN, LONG_MAX);
printf("unsigned long 类型最小值: 0, 最大值:%lu\n", ULONG_MAX);
// 4. long 输入
long lnumber = 0;
scanf("%ld", &lnumber);
printf("lnumber = %ld\n", lnumber);
unsigned long ulnumber = 0;
scanf("%lu", &ulnumber);
printf("ulnumber = %lu\n", ulnumber);
}
int main()
{
test03();
return 0;
}
long long类型:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
// C语言常量
#define MAX_VALUE 1000000
// 4. long long 类型的输入和输出
void test04()
{
// 1. long long 类型输出
// 有些编译器不支持 long long 类型
long long ll = 100;
printf("ll = %lld\n", ll);
unsigned long long ull = 100;
printf("ull = %llu\n", ull);
// 2. long long 内存大小
printf("long long 类型的内存大小: %d\n", sizeof(long long));
// 3. 取值范围
printf("long long 类型的最小值:%lld, 最大值:%lld\n", LLONG_MIN, LLONG_MAX);
printf("unsigned long long 类型的最小值: 0, 最大值: %llu\n", ULLONG_MAX);
// 4. long long 输入
long long llnumber = 0;
scanf("%lld", &llnumber);
printf("llnumber = %lld\n", llnumber);
unsigned long long ullnumber = 0;
scanf("%llu", &ullnumber);
printf("ullnumber = %llu\n", ullnumber);
}
int main()
{
test04();
return 0;
}