1. 标识符  

标识符(identifier)是赋予程序中的变量和函数等的名称。

标识符必须以非数字(大小写字母和下划线)开头,之后可以是非数字和数字的组合。C语言区分大小写,ABc、abc和 aBc分别代表不同的标识符。

标识符的分类:

  • 关键字
  • 预定义标识符:C语言中系统预先定义的标识符,如系统类库名、系统常量名、系统函数名,如printf
  • 用户标识符:不能把关键字作为用户标识符

合法的用户标识符示例如下所示:
x1    a  _ _y    abc_def    max_of_group    xyz    Ax3    If    iF    IF    if3

非法的用户标识符示例如下所示:
if    123    98pc    abc$    abc$xyz    abc@def

以下划线开头的标识符(如_x、_comp)和仅有一个大写英文字母的标识符(如A、Z),有可能是编译器内部使用的,因此最好不要用作变量和函数的标识符。

2. 关键字

在C语言中,像if和else这样的标识符被赋予了特殊的意义。这种具有特殊意义的标识符称为关键字(keyword),它们是不能用作变量名的。C语言中有32个关键字。

关键字
autodoubleintstruct
breakelselongswitch
caseenumregistertypedef
charexternreturnunion
constfloatshortunsigned
continueforsignedvoid
defaultgotosizeofvolatile
doifstaticwhile

auto:一种存储类型说明符,用于声明自动变量

break:一种跳转语句,用于跳出当前的那一层循环或switch语句

case:在switch语句中使用

char:一种基本内置类型,用于声明字符型变量或作为函数返回类型

const:一种类型限定符,限定变量具有“只读”权限

continue:一种跳转语句,用于终止本次循环

default:在switch语句中使用

do:与while一起使用,作为一种循环语句

double:一种基本内置类型,用于声明双精度浮点型变量或作为函数返回类型

else:与if一起使用,作为一种分支语句

enum:声明枚举这一自定义类型

extern:一种存储类型说明符,用于声明外部变量

float:一种基本内置类型,声明单精度浮点型变量或作为函数返回类型

for:一种循环语句

goto:一种跳转语句,又称无条件转移语句

if:一种分支语句

int:一种基本内置类型,用于声明整型变量或函数返回类型

long:一种基本内置类型,用于声明长整型变量或函数返回类型

register:一种存储类型说明符,用于声明寄存器变量

return:一种跳转语句,用于结束函数

short:一种基本内置类型,用于声明短整型变量或函数返回类型

signed:与整数类型一起使用,表示有符号的整数类型

sizeof:计算数据类型或变量长度(单位:字节)

#include <stdio.h>

struct S
{
	char c1;
	int i;
	char c2;
};
int main()
{
	printf("%d\n", sizeof(struct S)); // 12
	printf("%d\n", sizeof(double));   // 8
	int arr[8] = { 0 };
	printf("%d\n", sizeof(arr));      // 32
	return 0;
}

static:一种存储类型说明符,用于声明静态变量

struct:声明结构体这一自定义类型

switch:一种分支语句

typedef:类型重命名

typedef unsigned int uint; // 将unsigned int重命名为unit

typedef struct Node
{
    int data;
    struct Node* next;
}Node; // 把struct Node类型重命名为Node

unsigned:与整数类型一起使用,表示无符号的整数类型变量

union:声明联合体这一自定义类型

void:一种基本内置类型,用于当函数没有返回值时作为返回类型

volatile:一种类型限定符,编译器对访问该变量的代码不再进行优化

while:一种循环语句

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐