C语言数据类型入门学习
C语言提供两大数据类型:整数类型和浮点型。C语言中的数据类型和Java不一样,Java中存在基本数据类型和引用数据类型,其中引用数据类型包括:对象和数组。而基本数据类型包括整数类型、浮点型、字符型、布尔类型。
一、数据类型的HelloWorld
还是老惯例,先上手一个HelloWorld如下所示:
int main() {
double price = 999.8;
int buyCount = 0;
printf("请输出购买的数量\n");
scanf("%d", &buyCount);
printf("您一共购买了产品总价格:%lf",buyCount*price);
return 0;
}
运行结果如下所示:
请输出购买的数量
100
您一共购买了产品总价格:99980.000000
需要指出的是:scanf 函数类似java.util.Scanner类一样都是获取键盘输入的值进行处理,&buyCount表示将输入的值映射在buyCount变量上。printf函数中占位符**%d**表示打印的是整数,打印double类型值在C语言中用%lf 进行表示。
二、变量与常量数据
常量:顾名思义就是在程序运行前就已经设定好的值,程序运行期间不会被改变,字符串就是典型的常量的体现。而变量:就是程序运行过程中可能动态变化的量,C语言中的基本数据类型就是变量类型。
三、C语言的整数数据类型
C语言提供了多种基本数据类型,下面是常见的整数类型如下所示:
类型 | 字节 |
---|---|
char | 1字节 |
unsigned char | 1 字节 |
signed char | 1 字节 |
int | 2 或 4 字节 |
unsigned int | 2 或 4 字节 |
short | 2 字节 |
unsigned short | 2 字节 |
long | 4 字节 |
unsigned long | 4 字节 |
signed和unsigned的区别基本就在于,是否把存储的某一位看做符号位,unsigned时不看符号位,所以unsigned一般表示的是非负数。
需要注意的是有些数据类型在不同系统上占用的字节数是不同的如下所示:
- 打印八进制与十六进制
我们都知道计算机底层存储数字是以二进制进行存储的,一般情况下编辑器使用的是十进制,通过printf函数提供的占位符我们可以打印相应的进制数。
进制 | 占位符 |
---|---|
八进制 | %o |
十六进制 | %x |
十进制 | %d |
八进制前缀 | %#o |
十六进制前缀 | %#x |
下面以整数250为例,展示其八进制与十六进制
# include <stdio.h>
int main() {
int num = 250;
printf("八进制表示:%o\n",num);
printf("十六进制表示:%x\n",num);
printf("十进制表示:%d\n",num);
printf("八进制前缀表示:%#o\n",num);
printf("十六进制前缀表示:%#x",num);
}
- 打印short、long、int类型
通过printf函数提供的占位符可以打印如下相应的类型整数值
整数类型 | 占位符 |
---|---|
int | %d |
short | %h |
long | %ld |
八进制long | %lo |
十六进制long | %lx |
八进制short | %ho |
十六进制short | %hx |
具体代码就不演示了,可参考上面代码进行实践。
- 打印字符类型
在C语言中char类型是用来存储字符,其实char底层的字符是以数字进行存储的。 数字与字符的对应关系可以参考ASCII编码,其ASCII编码表如下所示:
下面挑选若干个数字和字符实践如下:
# include <stdio.h>
int main() {
char a = 'A';
char b = 'a';
printf("字符类型A-整数为:%d\n",a);
printf("字符类型a-整数为:%d\n",b);
int c= 37;
printf("int类型37-整数为:%c\n",c);
return 0;
}
C语言中支持转义字符如下:
四、C语言的浮点型数据类型
C语言中提供了float与double类型表示浮点型的小数,下面用printf函数打印这两个类型的值:
# include <stdio.h>
int main() {
float a =1.3f;
double b= 2.01;
printf("a=%f\n",a);
printf("b=%lf",b);
return 0;
}
开发中根据业务场景对数值的要求不同灵活选用不同的数据类型。