C语言数据类型包括基本类型(整型、字符型、实型、枚举类型)、指针类型、构造类型(数组类型、结构体类型、共用体类型)以及空类型四大类型。
基本数据类型:其值不可以再分解为其他类型的类型,类似于细胞
构造数据类型:采用构造方法构造一个或多个数据类型
指针类型:指针是一种特殊的,同时又具有重要作用的数据类型
空类型:在调用函数值时,通常应向调用者返回一个函数值。返回的函数值应具有一定的数据类型,不需要向调用者返回函数值的函数即为空类型,说明符为"void"
常量:在程序执行过程中,其值不发生改变的量,通常用大写符号来表示:#define 标识符 常量值
变量:在程序执行过程中,其值发生改变的量,通常用小写字母来表示:int x = 2;
例子1
/*已知单价求总价*/
#include <stdio.h>
#define PRICE = 30;
void main()
{
int num,tutal;
num = 10;
total = num*PRICE;
printf("total = %d\n",total);
}
整型常量:主要有八进制(以0开头)、十六进制(以0x开头)和十进制三种,通常由前缀区分
整型变量:与变量定义相同,int x = 3;x为变量的名称,3为变量的值,变量有存储地址
在C语言中,数值是以补码的形式表示的:
正整数的补码是它本身,负整数的补码则为取反再加1;
如-10:
10的源码: 00001010
取反: 11110101
加1: 111101110
整型变量的分类:
基本型 int 占4字节(1字节等于8bit)
短整型 short int 或 short 占2字节
长整型 long int 或 long 占4或8字节
无符号型 unsigned
查询整型所占字节长度:sizeof(整型类型)
例子2
/*整型数据的溢出*/
#include <stdio.h>
void main()
{
short int a,b;
a = 32767;
b = a+1;
printf("%d,%d\n",a,b);
}
实型数据
实型常量:有小数形式(0.5,-6.7)和指数形式(1.3e2,-0.68E3)两种表现形式
标准C语言允许浮点数使用后缀,如356f == 356.
实行数据在内存中的存放形式:
符号 指数部分(第一位为指数符号) 小数部分
实型变量:单精度、双精度、长双精度
例子3
/*实型数据的舍入误差*/
#include <stdio.h>
void main()
{
float a,b;
a = 123456.789e5;
b = a+20;
printf("%f\n",a);
printf("%f\n",b);
}
字符型数据
字符常量:用单引号括起来的一个字符,如‘a’,‘=’等
字符变量:char a;
转义字符:一种特殊的字符常量,以\开头,后跟一个或多个字符表示不同的意思,如"\n"表示回车换行
例子4
/*转义字符的使用*/
#include <stdio.h>
void main()
{
int a,b,c;
a = 5;
b = 6;
c = 7;
printf("abc\tde\rf\n");
printf("hijk\tL\bM\n");
}
例子5
/*小写字母换成大写字母*/
#include <stdio.h>
void main()
{
char a,b;
a = 'a';
b = 'b';
a = a-32;
b = b-32;
printf("%c,%c\n%d,%d\n",a,b,a,b);
}
字符串常量:一对双括号括起的字符序列
与字符常量区别:
1、字符常量由单括号括起来,字符串常量由双括号括起来;
2、字符常量只能是单个字符,字符串常量可以是一个或多个字符;
3、可以把一个字符常量赋予一个字符变量,但不可以把一个字符串常量赋予一个字符变量;
4、字符常量占一个字节的内存空间,字符串常量占的内存字节数等于字符串中字节数+1,增加的一个字节中存放字符"\0",这是字符串结束的标志。