基本数据类型
变量
C程序里的变量其实是程序可操作的存储区的名称,C 中每个变量都要有特定的类型,而类型决定了变量的存储空间大小和内存布局;
C程序里变量的名称由字母、数字和下划线字符组成,但必须以字母或下划线开头(下划线开头一般为底层变量),此外C程序对大小写敏感。
在变量或函数命名时我们应该遵循"见其名,知其义”的原则,如体重用变量名 weight 比 var 更容易理解:
对于多个单词组成的变量命名一般有两种组合方法:
- 驼峰式命名法(也叫匈牙利命名法,Windows、Java程序员): printEmployeePaychecks();
- 下划线命名法(Linux程序员): print_employee_paychecks();
基本数据类型
C语言中的数据类型用于指定可以在变量中存储哪种值,变量值的内存大小和类型由变量数据类型确定。在C程序中,每个变量或常量或数组必须C语言中的数据类型用于指定可以在变量中存储哪种值,量值的内存子具有数据类型,并且此数据类型指定要分配的内存量以及要在该变量或常量或数组中存储的值的类型。这此数挥米刑主要分为如下两类。
- 主数据类型(基本数据类型或预定义数据类型)
- 派生数据类型(辅助数据类型或用户定义的数据类型)
C语言并沿有规定每种基本数据类型的具体大小,但C语言仅保证short不会比int长,long不会比int短,double类型的长度不小于float类型的长度它们的具体大小由系统决定。
基本数据类型大小
类型 | 存储字节 | 取值范围 |
---|---|---|
char /unsigned char | 1字节 | -128~127 / 0 ~ 255 |
short / unsigned short | 2字节 | -32768 ~ 32767 / 0 ~ 65535 |
int / unsigned int | 2字节或4字节 | -32768 ~ 32767或-2147483648~ 2147483647 |
long / unsigned long | 4字节 | |
long long / unsigned long long | 8字节 | |
float | 4字节 | 精度:6位小数 |
double | 8字节 | 精度:615位小数 |
long double | 16字节 | 精度:19位小数 |
printf打印
字符 | 类型 | 含义 | 示例 |
---|---|---|---|
%c | char | 字符型,打印相应数值(ASCI码)对应的字符 | printf(“%c\n”,65);输出A |
%d、%i、%u | int/unsigned int | t有符号/无符号10进制整数,%i早期用法 | printf(“%u %04d\n”,123,123);输出 123 0123 |
%ld、%lu、%lld、%llu | long/unsigned long/long long/unsigned long long | 有符号long、无符号long、有符号long long、无符号long long类型打印printf(“%ld %lu\n”,12345678,12345678);输出12345678 12345678 | |
%o | unsigned int | 无符号8进制(octal)整数(不输出前缀0) | printf(“0%o\n”,123);输出0173 |
%x、%X | unsigned int | 无符号16进制(hex)整数不输出前缀0x | printf(“0x%02x%#02X\n”,10123);输出0x0a 0X7B |
%f、%lf | float(double) | 单精度浮点数用f,双精度浮点数用lf(printf可混用,但scanf不能混用) | printf(“%.9f %.9lf\n”,0.000000123,0.000000123);输出0.000000123 0.000000123注意指定精度,否则printf默认精确到小数点后六位 |
%e、%E、%g、%G | float(double) | 科学计数法,使用指数(Exponent)表示浮点数此处"e”的大小写代表在输出时“e”的大小写. | printf(“%g\n”,0.000000123);输出123e-07 |
%s | char * | 输出字符串中的字符直至碰到’\0’ | printf(“%s\n”,“Hello\0 Word”);输出: Hello |
%p | void * | 以16进制形式打印地址 | int a;printf(“%p\n”,&a);打印变量a的地址 |
%% | 转义输出格式控制串中的% | printf(“%%\n”);输出% |
#include <stdio.h>
int main()
{
int a;
printf("%c\n",65);
printf("%u %04d\n",123,123);
printf("%ld %lu\n",12345678,12345678);
printf("0%o\n",123);
printf("0x%02x%#02X\n",10123);
printf("%.9f,%.9lf\n",0.000000123,0.000000123);
printf("%g\n",0.000000123);
printf("%s\n","Hello\0 Word");
printf("%p\n",&a);
printf("%%\n");
return 0;
}
输出结果