C-数据类型
在本教程中,我们将学习C编程语言中的数据类型。
变数
变量是保存数据值的命名位置。
存储在变量中的值可以更改,并且与值永远不变的常量相反。
变量示例:名称,isGameOver,next_page,_nextgame,stage123等。
变量名规则
以下是命名变量的规则。
- 首字符必须是字母或者下划线
- 可以使用字母(A-Z和a-z),数字(0-9)和下划线_
- 不能是关键字
- 不得包含空格
变量名称区分大小写,意味着" hello"和" Hello"被视为两个单独的变量。
C中的数据类型
数据类型是存储表示形式,它告诉编译器变量中存储了哪种数据类型。
C将其数据类型分为3类。
- 主类型
- 派生类型
- 用户自定义
主要数据类型
C提供5种主要或者基本数据类型,即字符char,整数int,浮点数float,双精度浮点数double和void。
因此,如果我们要创建一个将包含字符的变量,则使用" char"数据类型。
char ch = 'a';
类似地,如果我们要存储整数值,则使用int
数据类型。
int gameScore = 10;
主要数据类型范围
在下表中,我们具有主要或者基本数据类型的值的范围。
数据类型 | 关键字 | 等效大小(位) | 范围 |
---|---|---|---|
字符 | char | 8 | -128至127 |
integer | int | 16 | -32768至32767 |
浮点数(小数点后6位) | float | 32 | 3.4e-38至3.4e + 38 |
双精度浮点(小数点后12位) | double | 64 | 1.7e-308至1.7e + 308 |
扩展数据类型
我们还可以使用short,long,signed和unsigned关键字扩展主数据类型。
与"long"数据类型相比,"short"数据类型的范围更小。
有符号数据类型可以同时包含正值和负值。
但是"无符号"数据类型只能包含正值。
下表列出了主要数据类型及其值范围的不同组合。
数据类型 | 关键字 | 等效大小(位) | 范围 |
---|---|---|---|
字符 | char | 8 | -128至127 |
有符号字符 | signed char | 8 | -128至127 |
无符号字符 | signed char | 8 | 0至255 |
short整数 | short int或者short | 8 | -128至127 |
带符号的短整数 | signed short int | 8 | -128至127 |
unsigned short整数 | unsigned short int | 8 | 0至255 |
integer | int | 16 | -32768至32767 |
signed integer | signed int | 16 | -32768到32767 |
无符号整数 | unsigned short int | 16 | 0至65535 |
long整数 | long int或者long | 32 | -2147483648至2147483647 |
signed long整数 | signed long int | 32 | -2147483648至2147483647 |
无符号长整数 | unsigned long int | 32 | 0至4294967295 |
浮点数(小数点后6位) | float | 32 | 3.4e-38至3.4e + 38 |
双精度浮点(小数点后12位) | double | 64 | 1.7e-308至1.7e + 308 |
扩展双精度浮点 | long double | 80 | 3.4e-4932至1.1e + 4932 |
使用与您要存储的数据范围正确匹配的数据类型。
void
" void"数据类型不带值,通常与函数一起使用以表示该函数将不返回任何值。
声明变量
当我们声明一个变量时,编译器将了解两件事。
- 变量名
- 变量将保存的数据类型
示例:创建一个将保留游戏级别的变量。
int level;
示例:声明多个变量
int level; int score; int life;
我们可以用逗号将三个具有相同数据类型" int"的变量合并在一行中。
int level, score, life;
给变量赋值
我们使用" ="赋值运算符将值赋给变量。
示例:创建一个变量来存储比赛的分数并为其分配0。
//declaring variable int level; //assigning value level = 0;
我们可以将声明和赋值步骤合并为一个。
//declare and assign int level = 0;
派生数据类型
这些是从主要数据类型派生的数据类型。
示例:数组,函数,指针
我们将在各自的教程中了解派生的数据类型。
用户定义的数据类型
C允许程序员使用typedef
和enum
创建用户定义的类型。
类型定义
我们使用typedef关键字为现有的数据类型赋予新的标识符名称。
下面给出了使用typedef的一般格式。
typedef类型标识符
其中,"类型"是任何现有的数据类型,而"标识符"是为其赋予的新名称。
例:
typedef int num;
在上面的行中,我们给整数" int"数据类型一个新的名称" num"。
在下面的例子中,我们使用了typedef来给int一个新的名字num。
然后创建一个新变量,并为其分配整数值10。
#include <stdio.h> int main(void) { typedef int num; num score = 10; printf("Score: %d", score); return 0; }
上面的代码将打印以下输出。
Score: 10
枚举
enum是枚举的数据类型,可用于创建用户定义的数据类型。
使用"枚举",我们可以创建数据类型,并定义可以分配给该类型变量的值。
在下面的示例中,我们将创建一个枚举的数据类型" color",它只能使用4个值" RED"," GREEN"," BLUE"和" WHITE"。
接下来,我们将创建类型为color的变量carColor,并为其分配值GREEN。
enum color { RED, GREEN, BLUE, WHITE }; color carColor = GREEN;
我们可以将枚举定义和变量创建结合如下
enum color { RED, GREEN, BLUE, WHITE } carColor = GREEN;
默认情况下,编译器将整数值分配给从0开始的枚举常量。
因此,在上面的"颜色"枚举中,RED常量获得整数值0,GREEN分配为1,依此类推。
由于枚举常量GREEN获得整数值1,因此以下代码将输出"Car Color:1"。
#include <stdio.h> int main(void) { enum color { RED, GREEN, BLUE, WHITE } carColor = GREEN; printf("Car Color: %d\n", carColor); return 0; }
我们可以将自己的整数值分配给枚举常量。
当我们将值设置为枚举常量时,则后续常量将获得的值增加1。
例如,如果我们要将GREEN设置为2,则可以编写以下内容。
enum color { RED, GREEN = 2, BLUE, WHITE } carColor = GREEN;
因此,RED将为0(默认值是枚举常量值从0开始)。
GREEN将为2(我们已经设置了该值)。
蓝色将为3,白色将为4。