【C语言复习】第七篇、关于C语言关键字的知识

C语言最重要的知识点复习资料 理解这些例子:1+1.5、1.5+3.5、1.5-1.5、2-2、1/2、3/2、1.0/2、1/2.0、3%5、5%3的值分别为2.5、5.0、0.0、0、0、1、0.5、0.5、3、2。4、a[0]、a[1]、a[2]也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a[0]+1,a[1]+1,a[2]+1都是跳一列。三种合法的整型形式:十进制、十六进制(0x开头,除0~9外还有a、b、c、d、e、f六个数字符)、八进制(0开头,没有8、9两个数字符)int a[]={1,2} 合法。 阅读详情

目录

第一部分、常见关键字

1、数据类型关键字

2、流程控制类关键字

第二部分、常用的关键字

1、typedef(类型重定义/类型重命名)

 2、static(易混淆const)

2.1、static修饰局部变量

 2.2、static修饰全局变量

 2.3、static修饰函数

第三部分、关于预处理指令的使用

1、#define定义常量

2、防止头文件被重复包含   

3、定义有参宏   

第四部分、友情链接


第一部分、常见关键字

        下表格中被颜色标记的,我个人认为是比较重要的,需要记住的。

        注意:include、define不是关键字,是预处理指令。

1、数据类型关键字

        

基本数据类型

void:声明函数无返回值或参数,声明无类型指针,显式丢弃运算结果。

char:字符型数据类型
int:   整型数据类型

float:单精度浮点型数据(属于浮点数据的一种,小数点后保留6位)

double:双精度浮点型数据(属于浮点数据的一种,比 float 类型的精度高,小数点后保留15/16位)

类型修饰关键字

short:修饰 int,短整型数据,可省略被修饰的 int

long:  修饰 int,长整型数据,可省略被修饰的 int

signed:修饰整型数据,有符号数据类型

unsigned:修饰整型数据,无符号数据类型

复杂类型关键字

struct:结构体声明

union:共用体声明

enum:枚举声明

typedef:声明类型别名

sizeof:得到特定类型或特定类型变量所占字节的大小

存储级别关键字

auto:  指定为自动变量,由编译器自动分配及释放(通常在栈上分配)。

static:指定为静态变量,分配在静态变量区。修饰函数时,指定函数作用域为文件内部。

register:指定为寄存器变量,建议编译器将变量存储到寄存器中;也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。

extern:  指定对应变量为外部变量,即在另外的目标文件中的定义,可以认为是约定由另外文件声明的。

const:  指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)。

volatile:指定变量的值有可能会被系统或其他线程/进程改变,强制编译器每次从内存中取得该变量的值。

2、流程控制类关键字

跳转结构

return:用在函数体中,返回特定值(或是 void 值,即不返回值)

continue:结束当前循环,开始下一轮循环

break:跳出当前循环或 Switch 结构

goto:无条件跳转语句,常用在多层循环嵌套 

分支结构

if:条件语句

else:条件语句否定分支(与 if 连用)

switch:开关语句(多重分支语句)

case:   开关语句中的分支标记

default:开关语句中的 “ 其他 ” 分支(可选)

循环结构

for:for循环结构 。

do:do循环结构 do while() ; 

while:while循环结构 while()  ; 

第二部分、常用的关键字

1、typedef(类型重定义/类型重命名)

 2、static(易混淆const)

        首先要明白被const修饰的变量会变成常变量,该变量的值便不可以改变。参考博客:C语言中常量的知识。

        接着再来了解一下static,static可以用来修饰局部变量、修饰全局变量、修饰函数。

2.1、static修饰局部变量

        作用:使局部变量的效果和全局变量的效果等价(不管几个括号)。

示例1、没有用static修饰的局部变量

示例2、用static修饰的局部变量后的效果 

为什么会导致这种结果呢?????

         因为static修饰局部变量,改变了局部变量的生命周期,本质上是改变变量的存储类型。

        内存一般指计算机的RAM随机存储器,而计算机的内存一般分为栈区、堆区、静态区。

        栈区:主要用来存放局部变量,函数参数等相关临时变量。

        堆区:主要用来动态内存分配。

        静态区:主要用来存放全局变量,以及static修饰的局部变量。

 2.2、static修饰全局变量

        作用:使全局变量只能在当前源文件(.c文件)使用,不能借助extern在其它源文件(.c文件)使用。

Why???为啥就不行了呢?

        本质上原因:全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了!

        作用:解决不同源文件中全局变量名称重复的问题。

 2.3、static修饰函数

        作用:使得函数只能在当前源文件(.c文件)使用,不能借助extern在其它源文件(.c文件)使用。

Why???为啥就不行了呢?

        本质上原因:函数,在其他源文件内部可以被使用,是因为函数具有外部链接属性,但是被static修饰之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的函数了!

        作用:解决不同源文件函数名一致的问题。

 第三部分、关于预处理指令的使用

        前面也说到了include、define不是关键字,是预处理指令。

        关于include的使用,比较简单,用来调用头文件。关于define的详细用法如下:

     注意:利用define去进行宏定义的时候,不需要在后面加分号,加分号是错误的!!!

1、#define定义常量

#define MAX 25
#define MIN 0

2、防止头文件被重复包含   

#ifndef _LED_H_
#define _LED_H_
//头文件内容
//.......
//.......
#endif

3、定义有参宏   

#define ADD(X,Y) X+Y
#define SUB(X,Y) X-Y

第四部分、友情链接

        希望我的笔记对你有帮助,有需要的小伙伴可以查看本专栏更多的往期文章🤪🤪🤪

        专栏链接: C语言的拾穗之旅_大屁桃的博客-优快云博客

C语言复习:32个关键字和运算符的15个优先级 C语言复习:32个关键字和运算符的15个优先级 C语言解析是从左边开始的,比如: #include <stdio.h> int main(int argc, char const *argv[]) { int b=0; int a=b++; printf("a is %d\n", a); printf("b is %d\n",b); return 0; } 输出结果: a is 0 b is 1 这里从a开始从左往右看,int a=b,是正确的式子,于是解析完成,然后是b++。 阅读详情

相关推荐

c语言复习

姓名:黄诗佳 日期:2018年6月22日今日学习任务:复习关于数组与指针以及关键字等c语言知识点还有冒泡排序输出。今日任务完成情况:按时完成今天的任务,开发代码量约150行。今日开发中出现的问题汇总:指针和数组的结合运用不熟悉。今日未解决问题:数组的地址运用还要继续消化。今日开发收获:巩固了数组与指针的知识点,对以前没有注意到的基础知识点有了更系统的学习。(堆,栈,程序运行步骤等)自我评价:写代码...

weixin_41478713的博客 726

C语言知识复习(超全面)

第一章 C语言基本知识 【考点1】C程序 用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。C语言有三种基本结构:顺序结构、选择结构、循环结构。 【考点2】main函数 又称主函数,是C程序的入口。main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的...

qq_45951706的博客 1万+

华为S5720交换机堆叠配置

S5720交换机,做下堆叠,两条线,交叉互联(即A交换机23口连到B交换机24口,A交换机24口连接B交换机23口)。PS:S5720堆叠可基于电口或者光口做,本次测试基于电口。 SWA配置 # 改名 [Huawei]sysname SWA # 最好先shutdown接口 [SWA]interface GigabitEthernet 0/0/23 [SWA-GigabitEthernet0/0/23]shutdown [SWA-GigabitEthernet0/0/23]interface G.

Markdown 6340

C语言重要知识点总结【4】:C语言的32个关键字和9种控制语句

32个关键字(表格)【数据类型关键字、控制语句关键字、存储类型关键字、其它关键字】控制语句及其用处(表格)

⭕星空之路Star的博客⭕ 3183

基于Simulink/Matlab的VSG并网系统单相接地与相间短路故障仿真建模与特性分析

本文详细介绍了基于Simulink/Matlab搭建虚拟同步发电机(VSG)并网系统仿真模型的方法,并重点分析了单相接地与相间短路故障下的系统特性。通过设置三相故障模块参数,模拟了故障发生时的电压、电流变化及VSG动态响应,为理解故障机理、优化控制策略及设计继电保护提供了仿真依据与实践指导。

t8u9v0w1x的博客 514

从飞机翼型仿真到燃烧模拟:Fluent多物理场耦合的3种实战策略

本文深入探讨了Fluent在多物理场耦合仿真中的三种实战策略,涵盖可压缩流动与燃烧耦合、湍流模型选择及网格策略,以及顺序耦合、强耦合和混合耦合方法。通过具体案例和工程实践,帮助中高级用户提升仿真精度和效率,适用于航空航天和能源化工等领域。

aa123的博客 994

C语言知识复习及拓展

数组就是一个可以存储相同类型元素的顺序集合。按维度来划分,数组分为一维数组和多维数组。按数组的内存大小是否可变来划分,数组可以分为静态数组和动态数组。指针是一种数据类型,用于存储内存地址的整数。指针变量就是使用这种数据类型定义的变量,其存储的值是另一个变量的地址。链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序实现的一种线性存储结构。数据域指针域。数据域存储数据元素,而指针域存储下一个节点地址。链表有多种类型,包括单向链表、双向链表、循环链表等。单向链表。

m0_65960610的博客 1128

【漏洞复现】7-Zip目录穿越漏洞(CVE-2025-11001)

摘要:CVE-2025-11001是7-Zip(v21.02-v24.09)Windows版处理ZIP包符号链接时的高危漏洞,攻击者可构造恶意ZIP文件实现目录穿越和任意文件写入。漏洞源于路径检查缺陷,当用户解压含特殊符号链接的压缩包时,可能将文件写入系统目录。复现利用GitHub公开的Python脚本(https://github.com/pacbypass/CVE-2025-11001)可生成攻击包,需注意该漏洞仅影响Windows且需要用户交互。

LongL_GuYu的博客 1608

C语言常见的关键字汇总

写这篇文章主要是为了复试重温C语言网上收集资料整理出来C语言常见的关键字。 1. 数据类型关键字(12个) char :声明字符型变量或函数 double :声明双精度变量或函数 enum :声明枚举类型 float:声明浮点型变量或函数 int: 声明整型变量或函数 long :声明长整型变量或函数 short :声明短整型变量或函数 signed:声明有符号类型...

2万+

ADS 2023 实战:手把手教你仿真一个中心频率 2.4GHz 的带通滤波器(附工程文件)

本文详细介绍了使用ADS 2023软件设计和仿真中心频率2.4GHz带通滤波器的全流程,包括工程准备、指标定义、原理图设计、仿真优化及实际电路实现。通过切比雪夫滤波器拓扑和参数优化,实现高性能的带通滤波器设计,适用于无线通信系统。附有工程文件和常见问题解决方案,助力工程师快速掌握射频滤波器设计技巧。

weixin_30790841的博客 481

Python代码加密与发布方案详解

本文详细介绍了多种Python代码保护方案,从基础加密到高级混淆,以及商业化发布的最佳实践。基础加密方案包括编译为字节码和使用PyArmor基础加密,适合临时保护和小项目。商业级加密方案如Cython编译和Nuitka完整打包,提供更高的保护强度和执行效率。高级混淆方案涉及控制流混淆、字符串加密和完整混淆工具链,进一步增加逆向难度。商业化发布方案则强调许可证系统集成、硬件绑定保护和完整发布流程。此外,文章还探讨了反逆向技术、最佳实践建议和常见问题解决方法。通过组合使用这些技术,可以构建出适合不同安全需求的P

数据知道的博客 1万+

C语言知识点复习梳理

C语言知识点复习梳理 C语言的知识点讲完了,接下来就是做一下整理与总结,然后就会进入其他知识的学习。 本文目录如下: 基础知识。 顺序程序设计。 数据类型。 标准输入输出。 进制转换。 选择结构。 循环结构。 数组。 函数。 指针 结构体。 文件。 题外话 这里就是说一些我觉得很基础的问题,无关紧要,但是希望可以解决你的疑惑。 有什么好的C语言...

qq_37864510的博客 3273

Claude Code 错误解决方案 使用策略拒绝 Usage Policy refusal

摘要:本文分析了Claude Code API请求被拒绝的问题,当违反Usage Policy时会显示错误提示。根因包括请求内容违规、模型敏感度差异或历史消息影响。解决方案包括修改请求措辞、切换至Sonnet 4.5模型或开启新会话。文章详细追踪了错误链路,提供了核心代码分析,并给出验证方法和最佳实践建议,帮助用户避免触发API拒绝机制。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 973

快速复习C语言(1)

文章详细记录了C语言的基础知识点,帮助我们快速复习C语言易错易混淆的知识

2301_76192068的博客 1563

《Linux GPU 驱动核心机制:面向图形与 AI 计算的 DRM 内存管理与任务调度》 目录

本文以缓冲区对象(BO)生命周期为主线,系统解析 Linux DRM 子系统中 GPU 驱动的核心机制。涵盖 GEM 与 TTM 内存管理、dma-buf/dma-fence 共享同步、GPU 调度与地址空间管理,结合 amdgpu、Xe 等驱动代码,深入剖析其设计动机与实现逻辑。旨在填补中文领域对 GPU 内核机制系统性讲解的空白,为图形与 AI 计算场景下的内存泄漏、同步死锁等疑难问题提供可追溯的分析路径。

图形/计算GPU的驱动与虚拟化技术分享园地 3719

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何快速复习C语言知识点

如何快速复习C语言知识点 如何快速复习C语言知识点如何快速复习C语言知识点1. 数据类型1.1 基本类型1.2 构造类型1.3指针类型2.输入输出和运算符3.控制语句3.1选择结构3.2循环结构3.3其他控制语句4.数据传递方式4.1 参数传递4.2返回值4.3全局变量4.4局部变量4.5形式参数4.6按值传递和按地址传递5.函数 1. 数据类型 1.1 基本类型 C语言的关键字总结 https://blog.youkuaiyun.com/weixin_43665107/article/details/848271

mini_new_w的博客 2484

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C语言知识复习回顾

复习C语言

qq_48456662的博客 802

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C语言关键字复习——define不是关键字,sizeof是关键字,不是函数

C语言关键字复习 在C89标准中共有32个关键字,在新的C99标准中,又增加了5个关键字 关键字(32+3) 含义 数据类型(13+3) void signed unsigned short long int  float double char enum struct union typedef (_Bool _Complex _Imaginary) 类型限定、修饰(2+2) const volatile (inline restrict) 变量的存储类别(4) auto stat

weixin_43106292的博客 1951

C 语言复习总结记录

C 语言是一门通用计算机编程语言,广泛应用于底层开发。设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。是一门面向过程的计算机编程语言,与 C++,Java 等面向对象的编程语言有所不同。二十世纪八十年代,为避免各开发厂商用的 C 语言语法产生差异,由美国国家标准局为 C 语言制定了一套完整的美国国家标准语法,称为 ANSI C,作为 C 语言最初的标准。

优质后端技术知识记录 1259

C语言再学习1——32个关键字

1 . 简述 工作这段时间虽然也调试一些程序,但很多时候还是停留在了模块,基础之上,缺乏系统的锻炼,同时工作中的定位现在更多是硬件,感觉慢慢的还是要转到嵌入式上来,才会有一些竞争力,能够了解底层的硬件,也明白程序的运行。硬件如果做得比较专,比较深,也是有很强的竞争力,反观自己,更多是打基础,学习一些跟产品设计相关的知识,以后也就想在有余力的时候,再把 C 语言系统的复习学习一下,过去的知识过于零散...

霁风AI 6823

C语言复习(专升本复习)

一个简单的C语言程序前言一、一个简单的C语言程序1.什么是C语言程序2.C语言的基本结构3.注意点 前言 提示:用于复习和分享c语言内容 因为要备考所以java暂时不更新建议看完c再去看java 所有顺序是按井冈山大学专升本复习大纲复习 提示:以下是本篇文章正文内容,下面案例可供参考 一、一个简单的C语言程序 示例: #inculde<stdio.h> void mian { //输出一句话 printf("hello word"); system("pause

qq_46567882的博客 4083

C语言复习笔记(一)C语言概论初识

从今天开始没有复习c语言的要抓紧时间了哦,如果不会复习的话,不妨跟着我一起来复习吧,现在小编已经结课了,反正闲着也是闲着,所以小编想用五天时间对c语言做一个系统性复习。欢迎大家一起来学习,互相指正,互相进步哦!加油,干就完了,奥利给!!! 不bb了,直入正题 第1章 C语言概论初识 (温馨提示,如果你看起来毫不费力,你就已经是大佬了哦,如果有些吃力,那就赶紧抓紧时间再学一遍吧,这个复习不针对小白哦) 最简单的C语言程序 【例1.1】要求在屏幕上输出:机械电子工程 解题思路: 在主函数中用printf函数原样

royal_77QAQ的博客 1588

C语言基础知识汇总(1)-数据类型、关键字、宏

总结数据类型,常用关键字的用法,对每个函数用法进行细分,生成目录,方便查阅。

IDAA123456的博客 1188

嵌入式C语言复习-基础篇

本文系统复习了嵌入式开发中C语言的核心知识点

DianZeF的博客 1179

C语言-来复习一波C语言的关键字吧-3

在大多数情况下,long类型的变量占用4个字节,但在一些特殊的系统中,可能会占用更多的字节。使用register关键字声明变量时,编译器会尽可能地将该变量存储在寄存器中,但并不能保证一定会存储在寄存器中,因为寄存器的数量是有限的,如果寄存器不够用,编译器会将变量存储在内存中。寄存器变量是指存储在CPU寄存器中的变量,其访问速度比存储在内存中的变量更快,因此可以提高程序的执行效率。需要注意的是,由于浮点数的精度问题,对于需要高精度计算的情况,应该使用double类型或long double类型的变量。

ic2121的博客 487

c语言考试知识点大全,C语言期末考试全部知识点复习资料--重点--常考点

C语言期末考试全部知识点复习资料--重点--常考点 学习必备 精品知识点 C语言 知识点复习资料 考试是难得的训练自己的机会,在特定的时间、特定的地点、特定的气氛下,你需要调动各方面的能力。而在每一次考试中,我都下意识地应用自己摸索出来的“目标控制法”,做到了每次考试有有收获和进步。 每次考试前,我都会在一张白纸上写满通过本次考试要达到的目标:要注意克服哪些易犯的错误,尤其是要克服前几次考试中暴露...

weixin_32771907的博客 1826
上一篇: 【C语言复习】第六篇、关于C语言操作符的知识
下一篇: 【FPGA入门】第五篇、按键消抖
大屁桃
博客等级 码龄8年 2万+粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

大屁桃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值