当前位置: 首页 > news >正文

从零开始的C语言学习:第2节 C语言的常见概念 2

目录

1.关键字介绍

2.字符与ASCII编码

3.字符串

免责声明


1.关键字介绍

在编写C语言程序的过程中,我们往往会用到很多的变量,所以也会给变量取各种各样的名字,聪明的你肯定会想到,C语言中好像有一些规定着其特定作用的词语,比如:int 、if 、return 等,如果我们在创建标识符时和这些词语重复了怎么办,C语言的发明者自然也想到了这个问题,所以便有了关键字

关键字也叫保留字,是C语言中一批保留了名字的符号。需要注意的是以下几点:

  • 关键字是C语言自带的,我们无法自己创建关键字。
  • 每个关键字都有其特殊的意义,是保留给C语言来使用的。
  • 我们在创建标识符时是不能和关键字重复的。

我们常见的关键字如下所示:

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

2.字符与ASCII编码

我们可以通过键盘敲出的如 a,B ,@ 等符号就被称为字符,在C语言中字符是用单引号括起来的,如 'a' 、'B' 、'@' 等

众所周知,计算机中的数据都是以二进制储存的,也就是一串0和1的组合,但我们实际看到的却不是0和1而是一个个字符,聪明的你很快就想到了,我们只需要让一个二进制的序列对应一个字符,到需要用数据的时候直接让计算机按照对应关系输出字符,不就可以了,但是显然,如果每个人都有自己的一套对应规则,那么提取出的数据肯定也不是正确的数据,为了方便大家相互通信,不造成混乱,来美国国家标准学会(ANSI)便出台了⼀个标准 ASCII 编码,C语言中的字符就遵循ASCII编码的方式。

在ASCII码表中编码为0-31的32个字符为不可打印字符,无法打印在屏幕中。

当我们需要打印单个的字符时,可以使用%c来指定格式,如

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

结果为

$ Q

值得注意的是虽然日常生活中我们可以在忘记对应编码时上网查询ASCII编码,但在比赛中或者其他一些无法查询的场合,记住部分常用编码就显得尤为重要了,比如

  • 字符A~Z的ASCII码值从65~90
  • 字符a~z的ASClI码值从97~122(大小写对应差值为32)
  • 数字字符0~9的ASCII码值从48~57
  • 换行 \n 的ASCll码值是:10

当然,在可以编写C语言代码时,也有一个查询部分ASCII码值的邪修办法:直接让计算机把码值为32~127对应的字符输出:

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

输出结果:

! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

3.字符串

字符串,顾名思义,就是字符连成串,一般来讲,在C语言中用双引号括起来的一串字符就被称为字符串,如"abcdefg" 、"你好,世界!"。

字符串可以直接打印,也可以用 %s 来指定,示例如下:

#include<stdio.h> int main() { printf("abcdefg\n"); printf("%s", "abcdefg"); return 0; }

结果:

abcdefg abcdefg

值得注意的是在字符串的末尾隐藏放着一个 \0 字符,这个 \0 字符是字符串结束的标志。

通过监视我们就可以看到,字符串 “abcdefg” 的末尾多出了一个 \0,它是隐藏的,正常情况我们是无法看见的。

我们还可以通过下面的程序验证一下:

#include<stdio.h> int main() { char a1[] = { 'a' , 'b' , 'c' }; //a1数组中存放三个字符 char a2[] = "abc"; //a2数组中存放一个字符串 printf("%s\n", a1); //均输出字符串类型 printf("%s\n", a2); return 0; }

结果:

abc烫烫烫烫烫烫烫烫烫烫烫烫烫烫蘟bc abc

我们可以发现第一次输出,后面出现了一堆乱码,这是因为第一次输出时,由于没有 \0 来表示字符串的结束,程序自动将内存中存放第一部分的后面的内容也读取了出来,但后面的部分本身不属于这里,强行拿过来,就成了乱码。而第二次输出由于有 \0 作为结束的标识,输出完后自动停止,所以输出正常。

免责声明

本人写这些教程本意是为了总结自己在C语言学习过程中的一些感悟,本人也正处于学习阶段,有些地方可能写的不是很好或者有些问题,欢迎在评论区或者留言指正,有不懂的地方也可以评论或留言,前期排版可能也不是很好,会努力改进的,感谢支持。

http://www.jsqmd.com/news/1403139/

相关文章:

  • 湛江 2026 瓷砖空鼓精选靠谱商家推荐:全屋瓷砖空鼓检测治理 - 屋工匠
  • AI漫剧生成中的角色与场景一致性控制——知漫剧的“全局锁定”机制测评
  • Windows打印机连接错误0x000003e3:RPC服务器不可用的系统化排查与修复指南
  • 徐州 2026 瓷砖空鼓精选靠谱商家推荐:老房墙砖脱落修缮处理 - 屋工匠
  • 电路分析与模拟电路实验箱
  • 宇树上市背后:具身智能技术栈与机器人商业化路径深度解析
  • 益阳市房屋漏水维修怎么防被坑不被套路_卫生间漏水本地业主踩坑实录与避坑重点梳理 - 雨婺虹修缮
  • 程序员为什么越来越离不开 AI?从代码调试到项目开发,真正拉开差距的是使用方式
  • Keil4与Keil5共存方案:解决嵌入式开发环境冲突的完整指南
  • SolidWorks钣金通风口命令实战:参数化风扇罩设计与工程图输出
  • 拉孚暖通节能智能体技术方案
  • 本地部署Gemma 4V:实测截图转HTML,小显存也能跑的多模态AI应用
  • STM32F103C8T6入门实战:从环境搭建到外设驱动开发
  • 数据结构——栈(附图文讲解 | 超详细)
  • 沧州 2026 瓷砖空鼓精选靠谱商家推荐:全屋瓷砖空鼓检测治理 - 屋工匠
  • 赣州 2026 瓷砖空鼓精选靠谱商家推荐:全屋瓷砖空鼓检测治理 - 屋工匠
  • IIS管理器全攻略:从入门到精通,掌握Windows Web服务器核心管理工具
  • 光耦固态继电器 : 筑牢智能养殖的可靠控制基石
  • OpenClaw框架:构建可控AI Agent的4包7层嵌入式架构实践
  • 潍坊 2026 瓷砖空鼓精选靠谱商家推荐:免砸砖空鼓注浆加固施工 - 屋工匠
  • 简单讲解Java--queue--三组成对出现的方法的区别
  • 主流OJ平台深度横评:从POJ到洛谷,算法学习者的实战指南
  • 【软考】2023年下半年信息安全工程师《综合知识》完整真题及解析
  • 网络拓扑结构全解析:从星型到网状,五大经典架构的工程实践与选型指南
  • 国产板级EDA软件:从核心需求看现状、优势与挑战
  • 2026曲靖危房鉴定检测怎么选?老旧房危房鉴定靠谱机构 TOP 结构安全检测+ 报告可查 电话汇总
  • 携程被罚51.79亿,酒店商家的OTA运营该换思路了
  • Model Context Protocol 优先级队列暴走:P0 工单被 Claude Code 丢进下个月
  • GitHub Copilot 补单元测试:覆盖率从20%飙升到85%,却漏了这5类边界用例
  • 2026年淡黄色透明液体N生产厂家实力解析:高纯度合成工艺与稳定性应用探讨 - 卓企推荐