基本数据类型
C语言中每个变量都有特定的数据类型,每种不同的数据类型又需要不同的内存来管理。
下面是C语言中最基本的4种数据类型:
char
: C语言中最基本的数据类型,在大多数编译器中占1个字节,即 1 byteint
: 见名知意,只能存储整型float
: It is used to store decimal numbers (numbers with floating point value) with single precision. 存储单精度的十进制小数。double
:存储双精度。
不同的数据类型存储值的范围也不同,这个范围会随着编译器的不同而不同,下图展示的是32位gcc编译器不同数据类型的存储范围:
既然不同数据类型在不同的平台上会有所差异,那么如何知道自己的电脑,各种数据类型的实际内存占有情况呢?
C语言提供了一个方法: sizeof()
#include <stdio.h>
int main()
{
int a = 1;
char b ='G';
float d = 2.1;
double c = 3.14;
printf("Hello World!\n");
//printing the variables defined above along with their sizes
printf("Hello! I am a character. My value is %c and "
"my size is %lu byte.\n", b,sizeof(char));
//can use sizeof(b) above as well
printf("Hello! I am an integer. My value is %d and "
"my size is %lu bytes.\n", a,sizeof(int));
//can use sizeof(a) above as well
printf("Hello, 我是单精度数据:%f, 占用内存大小:%lu\n", d, sizeof(float));
printf("Hello! I am a double floating point variable."
" My value is %lf and my size is %lu bytes.\n",c,sizeof(double));
//can use sizeof(c) above as well
printf("Bye! See you soon. :)\n");
return 0;
}
Hello World!
Hello! I am a character. My value is G and my size is 1 byte.
Hello! I am an integer. My value is 1 and my size is 4 bytes.
Hello, 我是单精度数据:2.100000, 占用内存大小:4
Hello! I am a double floating point variable. My value is 3.140000 and my size is 8 bytes.
Bye! See you soon. :)