C-数据类型

时间:2020-02-23 14:31:53  来源:igfitidea点击:

在本教程中,我们将学习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;

主要数据类型范围

在下表中,我们具有主要或者基本数据类型的值的范围。

数据类型关键字等效大小(位)范围
字符char8-128至127
integerint16-32768至32767
浮点数(小数点后6位)float323.4e-38至3.4e + 38
双精度浮点(小数点后12位)double641.7e-308至1.7e + 308

扩展数据类型

我们还可以使用short,long,signed和unsigned关键字扩展主数据类型。

与"long"数据类型相比,"short"数据类型的范围更小。

有符号数据类型可以同时包含正值和负值。
但是"无符号"数据类型只能包含正值。

下表列出了主要数据类型及其值范围的不同组合。

数据类型关键字等效大小(位)范围
字符char8-128至127
有符号字符signed char8-128至127
无符号字符signed char80至255
short整数short int或者short8-128至127
带符号的短整数signed short int8-128至127
unsigned short整数unsigned short int80至255
integerint16-32768至32767
signed integersigned int16-32768到32767
无符号整数unsigned short int160至65535
long整数long int或者long32-2147483648至2147483647
signed long整数signed long int32-2147483648至2147483647
无符号长整数unsigned long int320至4294967295
浮点数(小数点后6位)float323.4e-38至3.4e + 38
双精度浮点(小数点后12位)double641.7e-308至1.7e + 308
扩展双精度浮点long double803.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允许程序员使用typedefenum创建用户定义的类型。

类型定义

我们使用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。