C语言的32个关键字(简单介绍加解析方便记忆)
C32关键字
分支(5)
- if
- else
- switch
- case
- default
循环(3)
- for
- while
- do
跳转(4)
- return
- goto
- continue
- break
内建(7)
- void
- int
- short
- char
- long
- double
- float
自建(4)
- struct
- union
- enum
- sizeof
类型限定(9)
- auto
- const
- static
- volatile
- register
- extern
- typedef
- unsigned
- signed
关键字解读
流程控制相关的(12)
分支(5)
if
条件语句,当括号内为真则执行下面语句,为假不执行
if(条件表达式1){执行语句1:}if(条件表达式2){执行语句2:}
例子 :
if(x>0)
{printf("小于零");
}
else
条件语句否定分支(与 if 连用)
if else
if(条件表达式)
{执行语句1;
}
else //else 否则的意思。
{执行语句2;
}
例子:
if(x>0)
{printf("小于0");
}
else
{printf("大于等于0");
}
else if
if(条件表达式)
{执行语句1;
}
else if (条件表达式)
{执行语句2;
}
……
else
{执行语句n;
}
例子 :
if(x>0)
{printf("小于0");
}
else if(x==0)
{printf("等于0");
}
else
{printf("大于0");
}
switch(用于开关语句 )
case(用于开关语句 )
default(用于开关语句 )
switch case default break一般一起出现
若语句后不加break;则会输出一堆。下面有例子
switch(n)//n可以是数值、表达式,运算结果必须是整数{case val: //val必须是常量...break;//关闭执行开关,如果每个case后面都有一个break,形成了分支结构default: //如果每个case都没打开,则打开该执行开关,而且任何位置都最后生效}
举例子:输入一个整数 1输出haha 2输出xixi 其他情况都输出 hehe
若都不加break的话,输入1的时候,会输出 hahaxixihehe
#include <stdio.h>
int main()
{int a;scanf("%d",&a);switch(a)case 1: printf("haha"); break;case 2: printf("xixi");break;default: printf("hehe");break;
}
跳转(4)
break
结束跳出循环作用
例子: 当i等于5的时候结束了循环
int i;
for(i=0;i<10;i++)
{if(5==i)break;
}
printf("%d",i);
continue
结束当前这一次循环 ,进入下一次循环
例子: 正常s等于10 但因为在i等于5的时候遇到了continue 后面语句不执行了 少+了一次 最后等于9
int i,s=0;
for(i=0;i<10;i++)
{if(5==i)continue;s++;
}
printf("%d",s);
goto
无条件跳转语句 ,可以实现在函数内任意跳转 ,但不建议使用。 太灵活了,导致别人很难理解代码,且出错了很难找到。
但是它在驱动编程时特别适合处理异常。
例子 : 跳到 haha :位置执行语句 下面是个死循环
标签名: 语句;goto 标签名;
例子:
haha: i++;
goto haha;
return
- 返回一个数据给函数的调用者
- 结束函数的执行
函数返回值为0
return 0
main函数内 遇到则结束
循环(3)
for
for(表达式1;表达式2;表达式3){语句块4;}
执行过程为 1 2 4 3 2 4 3 2 .... 当2为假时结束
表达式1:初始化循环因子,最早被执行,只执行一次表达式2:判断,每次进入循环前都要进行判断,每次都执行表达式3:步进,修改循环因子的值(在执行完语句块1后才执行),每次都执行表达式4:执行0次或以上
例子 :
for(;;) //死循环
for(int i=0;i<100;i++)//循环100次
while
所有的for循环都可以用while来表示,看习惯使用
while(表达式1){表达式2;}表达式1:判断,每次进入循环前都要进行判断,每次都执行表达式2:相较于for循环中的语句块1增加了步进即修改循环因子的值,执行0次或以上循环因子的初始化在while循环前
例子:
while(1) //死循环int i=100 //循环100次
while(i--)
{}
do
与while 配合使用
先执行循环体,再判断循环条件,该循环体至少执行一次, 适合先干活,后检查的情况
do{表达式2;}while(表达式1);
表达式1:判断,每次进入循环前都要进行判断,每次都执行表达式2:相较于for循环中的语句块1增加了步进即修改循环i因子的值,相较于while循环中的表达式1执行次数变为1次或以上循环因子的初始化在while循环前
例子 :虽然 一开始就不小于0 但还是要先进一次循环后在判断条件 最后输出的i等于1
int i=0;
do
{i++;
}
while(i<0);
printf("%d",i);
数据类型相关的(20)
类型限定符(9)
auto
声明自动变量
现在不加就等于加了,加了反而容易出错。
在C11标准中 :auto给了新功能,自动识别变量类型
例子 :
int a=2;
double b=3.14;
-----等价-------
auto a=2;
auto b=3.14;
const
防止变量被显示的修改,使用const关键字修饰的变量,一定要对变量进行初始化
例子 :下面就会报错
const int a=10;
a=100;
例子2:隐式修改可以,虽然有警告还是修改成功了。
#include <stdio.h>
int main(int argc,const char* argv[])
{const int a=10;int* q=&a;*q=100;printf("%d",a);
}
------------------------------
1.c: 在函数‘main’中:
1.c:6:9: 警告: initialization discards ‘const’ qualifier from pointer target type [默认启用]
100
请按 ENTER 或其它命令继续
static
- 改变储存位置:
改变局部变量的储存位置,由stack改为data或者bss - 延长生命周期:
延长局部变量的生命周期。 - 限制作用范围:
限制全局变量、函数只能在本文件中使用
可以防止全局变量、函数命名冲突,或者也可以防止别人调用
#include <stdio.h>
static int j;
void f(void)
{static int i=0;i++;printf("i=%d ",i);
}
void g(void)
{j=0;j++;printf("j=%d\n",j);
}
int main(int argc,const char* argv[])
{for(int k=0;k<10;k++){ f();g();}
}
-------------------------------
i=1 j=1
i=2 j=1
i=3 j=1
i=4 j=1
i=5 j=1
i=6 j=1
i=7 j=1
i=8 j=1
i=9 j=1
i=10 j=1请按 ENTER 或其它命令继续
volatile
如果变量值没有被显示地修改,在使用这个变量时不会每次都从内存中读取,而会继续使用上一次读取的结果
如果使用volatile修饰后的变量,每次使用该变量时,都会从内存读取一次。
一般用于硬件编程或者多线程编程
例子 :不一定永远相等
volatile int num = 10;
if(num == num)
{}
register
申请把变量的储存介质由内存改寄存器,可以大大提升运算速度,但是由于寄存器数量有限,申请不一定成功。(编译器可能会根据实际情况忽略这个请求)
register int a = 0;
extern
声明变量,意识是声明此变量已经在别处定义了,请放心使用
只是临时让编译能够通过,链接时如果找不到依然报错
声明外部变量时,不可以赋值
extern int teacher_i;//老师总数
typedef
类型重定义,定义变量时如果前面加入typedef那么变量名就变成了这种类型(注意:不是替换关系)
1. typedef int num; 类型重定义
2. #define num int 替换
unsigned
无符号类型
unsigned char a; //这时候a的范围是0-255
char a; //范围是-128 - 127
signed
有符号类型
默认就是有符号的,不需要写。
signed char a;
signed int a;
内建类型(7)
void
void最常见的用法,就是在函数中限定函数的参数和返回值的 void draw(void); 表明函数draw没有参数也没有返回值 。
void* 类型后面才学 跟函数回调有关
char
类型 | 字节 | 范围 |
---|---|---|
signed char | 1 | -128~127 |
unsigned char | 1 | 0- 255 |
short
类型 | 字节 | 范围 |
---|---|---|
signed short | 2 | -32768~-32767 |
unsigned short | 2 | 0~65535 |
int
类型 | 字节 | 范围 |
---|---|---|
signed int | 4 | 正负20亿 |
unsigned int | 4 | 正40亿 |
long
类型 | 字节 |
---|---|
signed long | 4/8 |
unsigned long | 4/8 |
float
类型 | 字节 |
---|---|
float | 4 |
double
类型 | 字节 |
---|---|
double | 8 |
自建类型(4)
struct(结构)
结构(struct)联合(union)枚举(enum)
struct 结构名 { 类型 变量名; 类型 变量名; ... } 结构变量;
union(联合)
结构(struct)联合(union)枚举(enum)
enum(枚举)
结构(struct)联合(union)枚举(enum)
sizeof
求字节数,用到的地方很多,很实用的一个关键字
printf("%d",sizeof(long));
C语言的32个关键字(简单介绍加解析方便记忆)相关推荐
- c语言关键字中文意思,C语言的32个关键字是什么意思啊
C语言的32个关键字是什么意思啊 32个关键字是什么意思有谁知道的要简洁一点的 更新时间:2019-06-03 22:54 最满意答案 1. 数据类型关键字(12个): (1). char :声明字符 ...
- sqlite 无符号32_C语言的32个关键字
图控大叔 构图传递思想 阅读从未如此简单!!! 01 前言 今天对C语言的32个关键字做一下分类整理. 02 具体内容 对C语言的32个关键字做分类,一共可以分成四大类.如下: 具体分类如下: 数据类 ...
- c语言 json 请求_JSON的简单介绍以及C语言的JSON库使用
JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) .是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采 ...
- C语言的32个关键字
C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字.控制语句关键字.存储类型关键字和其它关键字四类. 1 数据类型关键字(12个): (1) char :声明字符型变量或函数 (2) ...
- C 语言的32 个关键字意义
2019独角兽企业重金招聘Python工程师标准>>> 01 auto 声明自动变量,缺省时编译器一般默认为auto 02 int 声明整型变量 03 double 声明双精度变量 ...
- C语言——函数和数组的简单介绍
本人声明:小编是一个刚学c语言不久的小白,想要写博客来加深对知识的理解,如果有写得不对或者不好的地方请各位大佬多多指教! 目录 (1)函数的概念 (2)函数的定义 (3)函数的调用 (4)使用函数和不 ...
- c语言while的读音,C语言的32个关键字(读音、用法、注释)转来的,给刚接触C的...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一.数据类型关键字(12个): 1.char [tʃɑ:]:声明字符型变量或函数 (1)主要内容字符:容纳单字符的一种基本数据类型:(2)n.炭:女清洁工 ...
- C语言之32个关键字
数据类型关键字(12个) char:声明字符型变量或函数 int:声明整型变量或函数 short:声明短整型变量或函数 long:声明长整型变量或函数 float:声明浮点型变量或 ...
- c语言读音,C语言的32个关键字(读音、用法、注释)转来的,给刚接触C的
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一.数据类型关键字(12个): 1.char [tʃɑ:]:声明字符型变量或函数 (1)主要内容字符:容纳单字符的一种基本数据类型:(2)n.炭:女清洁工 ...
- c语言变量名拼音,C语言的32个关键字(读音、用法、注释)转来的,给刚接触C的...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一.数据类型关键字(12个): 1.char [tʃɑ:]:声明字符型变量或函数 (1)主要内容字符:容纳单字符的一种基本数据类型:(2)n.炭:女清洁工 ...
最新文章
- 【从零开始的ROS四轴机械臂控制】(一)- 实际模型制作、Solidworks文件转urdf与rviz仿真
- 10个你必须知道的ios框架
- mysql safe 关闭_新手请教,mysqld经常自动关闭是什么原因?-问答-阿里云开发者社区-阿里云...
- 赛思信安携手太极 助力《甘肃省公安厅大数据警务云》项目
- spring基于注解的声明式事务控制
- 前端开发 使用html写一个博客 基本标签的体验 0226
- 笔记本卡顿不流畅是什么原因_为什么越来越多的笔记本电池不可拆卸
- apollo动态切换mysql数据源_log4j2从Apollo初始化配置并可动态变更
- SSM框架-添加信息及图片上传到本地MultipartResolver-foreknow_cms
- postman 配置统一的ip地址
- ArcGIS中GWR模型的构建
- 计算机维吾尔语键盘用法,超实用丨手机电脑如何安装、使用维吾尔语输入法
- 【转】只有运用你的逻辑才能看懂其中的恐怖
- SonarQube代码审查工具
- 文本分类(2)-基于传统机器学习方法进行文本分类
- MT6573 android 系统默认语言处理流程
- 图像处理的Alpha通道
- EXCEL中怎样能复制公式得来的数据(选择性粘贴)
- java操作word替换文字和在固定位置插入表格
- VMware虚拟机下载及安装 (新手教程)
热门文章
- java nio web,JavaWeb之三——网络IO和NIO
- 学生管理系统java源代码_java学生管理系统源代码
- Java后台快速开发框架
- 仿英雄联盟网页HTML代码 学生网页设计与制作期末作业下载 大学生网页设计与制作成品下载 DW游戏介绍网页作业代码下载
- 开启3389的方法记录
- Java JDK下载安装及环境配置超详细图文教程
- java 实现base64编码的三种方式、各方式性能比较、最后给出最优工具类 小白实操记录
- Android实战开发-Kotlin教程(入门篇 1.0)
- Oracle 11g数据库基础教程(第2版)-课后习题-第六章
- excel 第20讲:图表基础