数据类型决定:
1. 数据占内存字节数
2. 数据取值范围
3. 可以进行的操作
1字节(Byte)=8位(bit) | ||
一个汉字=2字节 |
中文标点=3字节 | |
一个英文字母=1字节 |
英文标点=1字节 |
2.1整数类型
类型 |
字节数 |
取值范围 |
int(基本整型) |
4 |
-231~(231-1) 2 147 483 648 |
short(短整型) |
2 |
-215~(215-1) 32 768 |
long(长整型) |
4 |
-231~(231-1) 2 147 483 648 |
long long(双长型) |
8 |
-263~(263-1) |
2.2浮点类型
头文件 float.h 定义了宏,在程序中可以使用这些值和其他有关实数二进制表示的细节。
类型 |
字节数 |
有效位 |
flot(单精度浮点型) |
4 |
6位小数 |
double(双精度浮点型) |
8 |
15位小数 |
long double(长双精度浮点型) |
10 |
19位小数 |
2.3字符类型
类型 |
字节数 |
取值范围 |
char(基本整型) |
1 |
-128~128 |
unsigned char(基本整型) |
1 |
0~255 |
ASCII码
ASCII代码 |
字符 |
065 |
A |
066 |
B |
097 |
a |
098 |
b |
2.4 void 类型
1 函数返回为空
C 中有各种函数都不返回值,或者可以说它们返回空。不返回值的函数的返回类型为空。
例如 void exit (int status);
2 函数参数为空
C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。
例如 int rand(void);
3 指针指向 void
类型为 void * 的指针代表对象的地址,而不是类型。
例如,内存分配函数 void *malloc( size_t size );
返回指向 void 的指针,可以转换为任何数据类型。
2.5 sizeof 运算符
使用 sizeof 运算符。表达式 sizeof(type) 得到对象或类型的存储字节大小。
/*-----------------------------------------------------------------------*/
#include <stdio.h>
/*-----------------------------------------------------------------------*/
/*
* @brief
* 关于 main 的功能描述:
* 获取环境中各数据类型的占用字节个数.
* @param[in] void
*
* @return return 0
*
* @implements 低层需求标识号 XXXX
*/
int main()
{
int a = 10;
short b = 20;
long c = 30;
long long d = 40;
float e = 1.23;
double f = 12.56;
long double g = 120.3456;
char h = 'A';
unsigned char i = 'b';
printf("a=%d,int_sizeof=%d\n", a, sizeof(a));
printf("b=0x%.2x,short_sizeof=%d\n", b, sizeof(b));
printf("c=%ld,long_sizeof=%d\n", c, sizeof(c));
printf("d=%ld,long long_sizeof=%d\n", d, sizeof(d));
printf("\n");
printf("e=%f,float_sizeof=%d\n", e, sizeof(e));
printf("f=%.2f,double_sizeof=%d\n", f, sizeof(f));
printf("g=%lf,long double_sizeof=%d\n", g, sizeof(g));
printf("\n");
printf("h=%c,char_sizeof=%d\n", h, sizeof(h));
printf("i=0x%.2x,unsigned char_sizeof=%d\n", i, sizeof(i));
printf("\n");
return 0;
}
/*-----------------------------------------------------------------------*/
输出结果如下
2.6 数据的输入输出
2.6.1 printf()
格式字符 |
代码 |
输出 |
d格式符 |
printf("%5d\n",123) |
123(123前面有2个空格) |
c格式符 |
printf("%5c\n",'a') |
a |
s格式符 |
printf("%s\n",'China') |
China |
f格式符 |
printf("%5.2d\n",12.3456) |
12.35(保留两位小数,四舍五入) |
o格式符 |
printf("%d\t%o\n",-1,-1) |
-1 37777777777 (八进制) |
x格式符 |
printf("%d\t%x\n",-1,-1) |
-1 ffffffff (十六进制) |
2.6.2 scanf()
scanf("%d",&a); scanf(格式控制,地址表列);
非常感谢您的支持!创作不易,转发备注出处!
自用展示内容,不定期更新维护内容,让我们把 C开发 变得更专业。
十年开发基本功,常年开班收徒(一年学徒制度),每年10个名额。
商业合作加微信,项目接包与外包。