赞
踩
ps:可以通俗理解为:数据类型是用来规范内存的开销,约定数据在内存中的格式,便于存储。
使用特点
语法说明
示例代码
- #include <stdio.h>
-
- int main() {
- // 1. 定义1个int变量age同时赋值为18(这叫初始化),然后打印内容
- int age = 18;
- printf("%d\n", age);
- // 2. 修改age的内容为20,然后打印内容
- age = 20;
- printf("%d\n", age);
- // 3. 定义2个int变量,然后在分别赋值,然后再打印内容
- int a, b;
- a = 123;
- b = 256;
- printf("%d\n", a);
- printf("%d\n", b);
- // 4. 定义1个float类型变量height同时赋值,然后打印内容
- float height = 1.77;
- printf("%f\n", height);
-
- return 0;
- }
通过上面的联系,变量会定义了,类型和赋值都一些了解了。但变量名字大家需要注意,变量名也叫标识符,它是用户编程时起的一个名字(变量、函数、结构体等都需要名字),为了便于后面程序中的使用,有一些命名规范我们需要遵守。
好的命名习惯要做到见名知意,如下:
示例
背景:
班长家的房子是一个价值千万的四层别墅,别墅的房间有很多、各种家居也非常多。他所住的房间是在三楼东边的卧室,房间里有学习桌和座椅,座椅非常豪华,有2.5米高,价值一万多块。
请为班长的座椅起个名字,要求看到名字就知道是哪个座椅。
例如:
char表示为字符类型,用于存储单个字符,每个字符变量都是由8个bit位构成,在内存中就是1个字节。
相关特性:
- #include <stdio.h>
-
- int main() {
- // 定义一个char类型变量,同时赋值为97,分别用%d,%c打印结果
- char ch = 97;
- printf("%d\n", ch);
- printf("%c\n", ch);
- // 定义一个char类型变量,同时赋值为'a',分别用%d,%c打印结果
- char ch2 = 'a';
- printf("%d\n", ch2);
- printf("%c\n", ch2);
-
- return 0;
- }
布尔类型是一种处理逻辑的类型,其有两个值,分别是真(true)或假(false),它在内存中的长度一般只占用1个字节。
示例代码:
- #include <stdio.h>
- #include <stdbool.h>
-
- int main() {
- // 定义一个bool类型变量,同时赋值为true,然后打印变量的值
- bool flag = true;
- printf("%d\n", flag);
-
- // 修改上一步变量的值为false,然后打印变量的值
- flag = false;
- printf("%d\n", flag);
-
- return 0;
- }
存储单位说明
术语 | 含义 |
bit(比特) | 一个二进制代表一位,一个位只能表示0或1两种状态。数据传输是习惯以“位”(bit)为单位。 |
Byte(字节) | 一个字节为8个二进制,称为8位,计算机中存储的最小单位是字节。数据存储是习惯以“字节”(Byte)为单位。 |
1b | 1bit |
1B | 1Byte = 8bit |
1KB | 1KB = 1024B |
1MB | 1MB = 1024KB |
1GB | 1GB = 1024MB |
1TB | 1TB = 1024GB |
1PB | 1PB = 1024TB |
…… | …… |
班长家的大别墅装了一个千兆光纤,请帮班长计算一下,班长的网速最高可以达到多少?
基本数据类型长度
数据类型的长度会受操作系统平台的影响,所以在不同平台下基本数据类型的长度是不一样的。
- #include <stdio.h>
-
- int main() {
- // 通过sizeof打印各种类型的长度(大小)
- printf("char length = %d\n", sizeof(char));
- printf("short length = %d\n", sizeof(short));
- printf("int length = %d\n", sizeof(int));
- printf("long length = %d\n", sizeof(long));
- printf("float length = %d\n", sizeof(float));
- printf("double length = %d\n", sizeof(double));
- printf("long double length = %d\n", sizeof(long double));
-
- // 定义int类型变量,sizeof打印变量的大小
- int a;
- printf("a length = %d\n", sizeof(a));
-
- return 0;
- }
最开始我们介绍C语言是一门跨平台的编程语言,使用C语言编写的程序可以在不同的系统平台下运行,这里有一些前提,为了更好的兼容不同平台,我们在使用基本上数据类型的时候会采用可移植的类型,这些类型可以确保在不同的平台下稳定的运行。
示例代码:
- #include <stdio.h>
- #include <inttypes.h>
-
- int main() {
- // 8位整型
- int8_t a=127;
- printf("%d\n", sizeof(a));
-
- // 16位整型
- int16_t b = 127;
- printf("%d\n", sizeof(b));
-
- // unsigned 无符号,没有符号位,数值为正数
- uint8_t c = 255;
- uint16_t d = 200;
-
- return 0;
- }
与变量不同,常量的值在程序运行时不会改变。
整型常量 | 100,200,-100,0 |
实型常量 | 3.14 , 0.125,-3.123 |
字符型常量 | 'a', 'b', '1' |
字符串常量 | "a", "ab","12356" |
常量的定义方式有两种:
- // 预处理常量
- #define PI 3.14
-
- // const常量
- const double pi2 = 3.14;
示例代码:
- #include <stdio.h>
- // 预处理常量
- #define PI 3.14
-
- int main() {
- // const常量
- const double pi2 = 3.14;
-
- // 常量不能修改,以下代码是错误的
- PI = 3.33;
- pi2 = 3.33;
-
- return 0;
- }
C语言提供了一些常量库,比如有:float.h、limits.h等,这些常量同样受操作系统平台的影响会在不同的平台下不一样。
float.h:
limits.h:
- #include <stdio.h>
- #include <float.h>
- #include <limits.h>
-
- int main() {
- // 打印float类型能够表示的最大值和最小值
- printf("%lf\n", FLT_MIN);
- printf("%lf\n", FLT_MAX);
- // 打印char类型位数以及能够表示的最大值和最小值
- printf("%d\n", CHAR_BIT);
- printf("%d\n", CHAR_MIN);
- printf("%d\n", CHAR_MAX);
- // 打印short类型能够表示的最大值和最小值
- printf("%d\n", SHRT_MIN);
- printf("%d\n", SHRT_MAX);
- // 打印int类型能够表示的最大值和最小值
- printf("%d\n", INT_MIN);
- printf("%d\n", INT_MAX);
- // 打印long类型能够表示的最大值和最小值
- printf("%ld\n", LONG_MIN);
- printf("%ld\n", LONG_MAX);
-
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。