2.C语言中常见的关键字

1.数据类型相关的关键字

用于定义变量或者类型

类型 变量名:
char , short , int , long , float , double
struct , union , enum , signed , unsigned , void

  1. char 字符型,用char定义的变量是字符变量,占1个字节 8比特
    char ch = ‘a’ =为赋值号
    char ch1 = ‘1’; 正确
    char ch2 = ‘1234’; 错误,只能用单个字符赋值

查看0-255对应的字符

#include<stdio.h>
int main()
{
	int i;
	for (i = 0; i < 255; i++)
	{
		printf("%c %d", i, i);
	}
	return 0;
}

用ASCII码赋值

#include<stdio.h>
int main()
{
	char ch;
	//ch = 'a';
	ch = 97;
	printf("ch = %c\n", ch);
	return 0;
}

1.2 short 短整型,使用short定义的变量是短整型变量,占2个字节
short int a=11; -32768 ----- 32767

1.3 int 整型,用int定义的变量是整型变量,在32位系统下占4个字节,在16平台下占两个字节
int a = 44; -20亿 ----- 20亿

查看char,short int,int 占用的字节位数

#include<stdio.h>
int main()
{
	char a;
	short int b;
	int c;
	printf("sizeof(a) = %d\n", sizeof(a));
	printf("sizeof(b) = %d\n", sizeof(b));
	printf("sizeof(c) = %d\n", sizeof(c));
	return 0;
}

在这里插入图片描述

1.4 long长整型,用long定义的变量是长整型的,在32位系统占4个字节
long int a=66;

1.5 float 单浮点型(实数),用float定义的变量是单浮点型的实数,占四个字节
float b = 3.8;

1.6 double 双浮点型(实数),用·double定义的变量是双浮点型的实数,占八个字节
double f = 3.8;

#include<stdio.h>
int main()
{
	char a;
	short int b;
	int c;
	long int d;
	float e;
	double f;
	printf("sizeof(a) = %d\n", sizeof(a));
	printf("sizeof(b) = %d\n", sizeof(b));
	printf("sizeof(c) = %d\n", sizeof(c));
	printf("sizeof(d) = %d\n", sizeof(d));
	printf("sizeof(e) = %d\n", sizeof(e));
	printf("sizeof(f) = %d\n", sizeof(f));
	return 0;
}

在这里插入图片描述

1.7 struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型

1.8 union 这个关键字是与共用体(联合体)相关的关键字

1.9 enum与枚举类型相关的关键字

1.10 signed有符号(正负)的意思
在定义char、整型(short、int、long)数据的时候用signed修饰,代表定义的数据是有符号的,可以保存为正数,也可以保存为负数
signed int b = -6;
注意:默认情况下signed可以省略,即int a=-10;默认a就是有符号的数据

1.11 unsigned 无符号的意思
在定义char、整型(short、int、long)数据的时候用unsigned修饰,代表定义的数据是无符号的数据
只能保存正数和0
unsigned int a = 101;
unsigned int a = -101;//错误

1.12 void 空类型的关键字
char,int,float 都可以定义变量
void 不能定义变量,没有void类型的变量
void 是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值
例如:void fun(void)
{
}
代表fun函数没有返回值,fun函数没有参数

2.存储相关的关键字

register , static , const , auto , extern

  1. register 是寄存器变量的意思,用register修饰的变量是寄存器变量
    在编译的时候告诉编译器这个变量是寄存器变量,尽量将其存储空间分配在寄存器中。

注意:
定义的变量不一定真的存放在寄存器中
cpu取数据的时候去寄存器中拿数据比去内存中拿数据要快
因为寄存器比较宝贵,所以不能定义寄存器数组
register 只能修饰字符型及整型,不能修饰浮点型

register char ch;
register short int b;
register int c;
register float d;//错误的

因为register修饰的变量可能存放在寄存器中不存放在内存中,所以不能对寄存器取变量地址。只有存放在内存中的数据才有地址。
register int a;
int *p;
p = &a;//错误的,a可能没有地址

2.static 是静态的意思
static 可以修饰全局变量、局部变量、函数

3.const 是常量的意思
用const修饰的变量是只读的,不能修改它的值
const int a=101;//在定义a的时候用const修饰,并赋初值为101
const 可以修饰指针

4.auto int a;和 int a;是等价的,auto关键字现在基本不用

5.extern 是外部的意思,一般用于函数和全局变量的声明

3.控制语句的关键字

if , else , break , continue , for , while , do , switch , case , goto , default

4.其它关键字

sizeof , typedef , volatile

1.sizeof
用来测量变量,数组占用存储空间的大小(字节数)

2.typedef
给一个已有的类型,重新起个类型名,并没有创造一个新的的类型

typedef起别名的方法:
用想起名的类型定义一个变量
short int a;
用新的类型名替代变量名
short int INT16;
在最前面加typedef
typedef short int INT16;
现在可以使用新的类型名来定义变量
INT16 b; 等于 short int b;

#include<stdio.h>
typedef short int INT16;
int main()
{
	short int a = 101;
	INT16 b = 111;
	printf("a=%d\n", a);
	printf("b=%d\n", b);
	return 0;
}
  1. volatile 易改变的意思
    用volatile定义的变量,是易改变的,集告诉cpu每次用volatile变量的时候,重新去内存中取,保证用的是最新的值,而不是寄存器中的备份
    volatile 关键字现在较少适用
    volatile int a=10;

命名规则:
在c语言中给变量和函数起名的时候,由字母、数字、下划线构成
必须以字母或者下划线开头

int a2; //正确的
int a_2; //正确的
int _b; //正确的
int 2b; //错误的
int $a2; //错误的

Linux 风格
stu_num
驼峰风格
StuNum
大小写敏感
int Num;
int num; //两个变量

C语言的程序结构
一个完整的C语言程序,是由一个、且只能有一个main()函数 (又称主函数,必须有和若干个其他函数结合而成)
main 函数是程序的入口,即程序从main函数开始执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要遍历C语言关键字,可以使用C语言标准库的<string.h>头文件和<ctype.h>头文件的函数。下面是一种实现方式: 1. 定义一个字符数组来存储C语言的所有关键字,例如: ``` char *keywords[] = {"auto", "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for", "goto", "if", "int", "long", "register", "return", "short", "signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while"}; ``` 2. 对于输入的每个单词,使用C语言标准库的<ctype.h>头文件的函数检查它是否为关键字。例如,使用strcmp函数比较输入的单词是否与数组的任何一个关键字相等: ``` int is_keyword(char *word) { int i, n; n = sizeof(keywords) / sizeof(char *); for (i = 0; i < n; i++) { if (strcmp(word, keywords[i]) == 0) { return 1; } } return 0; } ``` 3. 对于输入的每个单词,还需要使用C语言标准库的<ctype.h>头文件的函数将其转换为小写字母,以便与关键字数组的字符串进行比较。例如,使用tolower函数将单词转换为小写字母: ``` void to_lower(char *word) { while (*word) { *word = tolower(*word); word++; } } ``` 4. 最后,可以将输入的文本分解成单词,并调用is_keyword函数和to_lower函数来检查它们是否为关键字。 以下是一个完整的示例程序,演示如何遍历C语言关键字: ``` #include <stdio.h> #include <string.h> #include <ctype.h> char *keywords[] = {"auto", "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for", "goto", "if", "int", "long", "register", "return", "short", "signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while"}; int is_keyword(char *word) { int i, n; n = sizeof(keywords) / sizeof(char *); for (i = 0; i < n; i++) { if (strcmp(word, keywords[i]) == 0) { return 1; } } return 0; } void to_lower(char *word) { while (*word) { *word = tolower(*word); word++; } } int main() { char text[] = "for (int i = 0; i < n; i++) { printf(\"%d\\n\", i); }"; char *word; word = strtok(text, " "); ### 回答2: 在C语言关键字是预定义的标识符,用于表示语言的特殊功能和结构。要遍历C语言关键字,可以按照以下步骤进行: 1. 创建包含C语言所有关键字的数组。根据C语言的标准,可以将关键字存储在一个字符串数组。 2. 使用循环结构,遍历数组的每个关键字。可以使用for循环或while循环来实现遍历。 3. 在循环,将每个关键字打印出来或进行其他操作。可以使用printf函数将关键字输出到控制台上,也可以将其存储在新的数组或其他数据结构。 4. 执行完循环后,即可遍历所有的C语言关键字。 下面是一个简单的示例代码,用于遍历C语言关键字: ```c #include<stdio.h> #include<string.h> int main() { char* keywords[] = {"auto", "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for", "goto", "if", "int", "long", "register", "return", "short", "signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while"}; int numKeywords = sizeof(keywords) / sizeof(keywords[0]); for(int i = 0; i < numKeywords; i++) { printf("%s\n", keywords[i]); } return 0; } ``` 以上代码通过使用循环遍历并打印出C语言的所有关键字。运行代码后,会依次打印出每个关键字,完成关键字的遍历。 ### 回答3: 要遍历C语言关键字,首先需要了解C语言关键字有哪些。C语言关键字是由编译器预先定义的,用于表示特定功能或命令的保留字。 C语言关键字共有32个,包括基本数据类型(如int、float、char等)、流程控制语句(如if、while、for等)、函数定义关键字(如void、return等)等。 遍历C语言关键字可以采用以下步骤: 1. 定义一个字符串数组,用于存储C语言关键字。 2. 创建一个循环,循环变量从0到31(因为C语言一共有32个关键字)。 3. 在循环,依次将每个关键字赋值给字符串数组的元素。 4. 遍历完所有关键字后,输出或处理字符串数组关键字。 以下是示例代码: ``` #include <stdio.h> #include <string.h> int main() { char keywords[32][10] = {"auto", "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", "extern", "float", "for", "goto", "if", "int", "long", "register", "return", "short", "signed", "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while"}; int i; for (i = 0; i < 32; i++) { printf("%s\n", keywords[i]); } return 0; } ``` 以上代码会将C语言关键字遍历并逐个输出。可以根据实际需求,将关键字存储到其他数据结构,或进行其他处理操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oo0day

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值