news 2026/8/1 12:57:20

【c语言基础】C语言常见概念

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【c语言基础】C语言常见概念

目录

一、第一个c语言程序

二、关键字的介绍

三、字符和ASCII编码

四、字符串和\0

五、转义字符

六、语句和语句分类

6.1 空语句

6.2 表达式语句

6.3 函数调用语句

6.4 复合语句

6.5 控制语句

七、注释

7.1 /**/ 的注释方式

7. 2 // 的注释方式


一、第一个c语言程序

#include<stdio.h> //这个是头文件 int main() //主函数 { printf("hello C\n"); return 0 ; //退出当前函数,带回返回值 }

1、#include<stdio.h>

#include:预处理指令,作用:把后面文件里的代码 “导入” 到当前程序。

<stdio.h>:标准输入输出头文件

stdio = standard input output

2、int main()

main:主函数,C语言程序唯一入口。程序运行时系统自动从main开始执行。

int: 代表这个函数返回整数类型

然后一个程序只能有一个main函数,不然会报错。

3、{ }

大括号:函数体边界 所有属于main函数内部的代码,全部写在一对大括号里

4、printf("hello C\n");

printf():打印函数,向控制台打印文字

“hello C\n”:字符串常量;\n是转义字符,表示换行

5、return 0 ;

return :退出当前函数,带回返回值。

0:返回的是整数(也就是程序正常跑完,没有错),非0程序运行发生异常,因为前面int main(),要求main必须返回整数。

主包我使用的是VS2026,在VS2026中运行代码的快捷键是:ctrl+F5

二、关键字的介绍

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

对于关键字的话,我们自己在创建标识符的时候是不能和关键字重复的,然后这些关键字也不是自己能创建的。是官方给好的的,注:https://zh.cppreference.com/w/c/keyword(C语⾔关键字的全部介绍)。

三、字符和ASCII编码

像我们在键盘上敲出来的字符,如a,b,!等等,都叫做字符,然后c语言中字符是用单引号括起来的,如‘a’,‘b’,‘!’。然后我们知道计算机中,所有的数据都是以二进制的形式存储的。后来为了标准化,将这些字符变成了ASCII编码,c语言就是使用ASCII编码。

这个出自:https://zh.cppreference.com/w/cpp/language/ascii

字符A~Z的ASCII码值从65~90

字符a~z的ASCII码值从97~122

大小写字符的ASCII码的差值为32

数字字符0~9的ASCII码值是从48~57

然后0~31这32个字符是不可打印字符

#include<stdio.h> int main() { printf("%c\n",'Q'); printf("%c\n",81); return 0 ; }

其中,输出的‘Q’和81的结果都是相同的,如下图所示。

其中,81是十进制的,因为在C语言中默认就是使用十进制,如果你还想使用八进制或者十六进制打印对应的“Q”的话,比如这张图,你就不能直接输入121或者51,会默认为十进制的121或51,而应该在八进制前面加上0,如“0121”在十六进制前面加上0x,如“0x51”。如下图所示。

当然,还可以使用字符串内部转义写法,在前面加上"\",如'\121'或‘\x51’,如下图所示。

四、字符串和\0

在c语言中,字符串要用双引号括起来的,如“Hello world”,就是一个字符串,前面提到的‘’单引号是字符常量,只能表示单个字符如'\x51',像‘AB’它就会报错。

其中,%s是字符串占位符,来接收“hello world”的。

然后在C语言字符串中有一个特殊的知识,就是在字符串的末尾隐藏着一个“ \0 ”,这个“ \0 ”字符是字符串的结束标志。

char是字符类型,str[]是字符数组。如图所示,在末尾结束符 \0,我这个调试界面,需要在我代码第六行的那个位置打个断点,按ctrl+F10,然后再顶部菜单“调试-窗口-监视-监视1”,在监视窗口输入变量名就可以了。

如图所示, char arr1[] = {'a','b','c'}数组大小只有3个字符,末尾没有自动添加 \0,就会导致乱码,而 char arr2[] = "abc" 只要你用双引号""包裹文字去初始化字符数组 / 字符指针,c语言编译器会自动在最后偷偷塞一个\0,就正常打印。

在其后面加上‘\0’就能正常打印了,所以 \0 很重要,因为printf("%s")、strlen、strcpy这类字符串函数,全部依靠\0当作终止标记。如果没有这个标记,函数会继续往数组外面乱读内存,产生乱码。

五、转义字符

在前文中就提到了\n是转义字符,它是换行的意思。转义字符就是转变原来意思的字符,如下图一些常用的转义字符。

转义字符参考:https://zh.cppreference.com/w/c/language/escape

六、语句和语句分类

c语言的代码是由一条一条的语句构成的,c语言中的语句分为五类:

1、空语句

2、表达式语句

3、函数调用语句

4、复合语句

5、控制语句

6.1 空语句

空语句就是一个分号一条语句。

#include <stdio.h> int main() { ;//空语句 return 0 ; }

6.2 表达式语句

表达式+分号。

#include <stdio.h> int main() { int a = 1; a = 0; //赋值表达式语句 b = a + 5;//算术表达式语句 a++; //自增表达式语句 return 0; }

6.3 函数调用语句

函数调用的时候,也会加上分号,就是函数调⽤语句。

printf("hello");//printf就是函数,函数调用语句 scanf("%d", &a);//scanf也是函数

6.4 复合语句

用{ }包裹多条语句,整体看成一条语句。

{ int x = 5; printf("%d", x); }

6.5 控制语句

用来控制代码执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构)。C语言有九种控制语句,分为3大类:

1、条件判断也叫分支:if...else或if...else if...else、switch

2、循环:for、while、do...while

3、跳转或转向:break、continue、goto、return

七、注释

注释的作用是为了方便自己后面看得懂代码,以及让别人也看得懂代码。

7.1 /**/ 的注释方式

第一种方式是将注释放在/*..*/之间,内部也可以分行。方便在多行注释,以及代码编译中使用,如下所示。

#include <stdio.h> int main() { /* 单行注释 */ printf("测试1\n"); /* 多行块注释 printf("这行代码被注释,不会执行\n"); */ // 行内注释演示 int num /* 存储数字 */ = 100; printf("%d\n", num); return 0; }

7. 2 // 的注释方式

// 这种方式还是经常使用的一种方式,就将注释写在// 的后面,但是//后面的都会被注释掉。

对于这种方式有几种快捷键,我在使用ctrl + /,这也是python注释的快捷键;另一种就是ctrl+ k + c,然后取消注释是ctrl + k + c

8. 总结

这个是我入门C语言的第一节课,后面我也会持续更新,本文涉及的学习代码已同步上传至 Gitee 仓库:https://gitee.com/ZhiWeiCoder/student_c,大家可以关注我gitee,需要的可以去自行下载,如果文章和代码中存在错误或者理解不到位的地方,欢迎大家指出交流,共同学习进步。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 12:54:29

1.32英寸OLED模块驱动指南:从硬件接口到UI设计实战

1. 项目概述&#xff1a;1.32英寸OLED模块的入门与精进如果你玩过Arduino、ESP32或者树莓派&#xff0c;大概率见过或者用过那种小巧的、能显示几行文字或简单图形的黑色屏幕&#xff0c;那很可能就是一块OLED模块。今天要聊的&#xff0c;是其中尺寸稍大、显示内容更丰富的一款…

作者头像 李华
网站建设 2026/8/1 12:54:28

超算中心环境控制系统设计与能效优化实践

1. 项目背景与核心挑战 超算中心作为支撑前沿科研和产业创新的关键基础设施&#xff0c;其运行环境稳定性直接决定了计算资源的可靠性和能效表现。我曾参与过三个不同规模超算中心的规划建设&#xff0c;发现环境控制系统往往是后期运维中最棘手的环节——某次空调系统故障导致…

作者头像 李华
网站建设 2026/8/1 12:54:26

ESP32 GPIO控制reSpeaker Flex语音模块:从引脚模式到中断实战

1. 项目缘起&#xff1a;当智能语音模块遇上灵活的微控制器最近在折腾一个智能家居的语音控制节点&#xff0c;核心需求是让设备能“听懂”指令并做出响应。市面上现成的智能音箱方案虽然方便&#xff0c;但要么功能太固定&#xff0c;要么数据隐私让人不放心。于是&#xff0c…

作者头像 李华
网站建设 2026/8/1 12:52:03

焊接修改工单,由AI自动核算

船舶建造过程中&#xff0c;设计修改、现场异常和返修工单不断产生。每一张工单背后&#xff0c;都可能涉及新增焊缝、接头形式变化、板厚调整或施工范围变更&#xff0c;这些变化最终都要重新核算工时定额。 看起来只是“看图填表”&#xff0c;实际却是一项高度依赖专业经验的…

作者头像 李华
网站建设 2026/8/1 12:51:33

Minecraft 1.21 MASA全家桶汉化包:3分钟快速上手指南

Minecraft 1.21 MASA全家桶汉化包&#xff1a;3分钟快速上手指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Minecraft 1.21版本中那些英文模组界面而头疼吗&#xff1f;MASA…

作者头像 李华