前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初识C语言

初识C语言

作者头像
_lazy
发布2024-10-16 14:47:05
780
发布2024-10-16 14:47:05
举报
文章被收录于专栏:Initial programming

1

C语言中有一批被保留的有名字的符号,它们被称为关键字,如上篇代码写到的int main 都是关键字。所以,由此而得,关键字有自己特别的含义。

数据类型关键字(12个): char、short、int、long、signed、unsigned、float、double、struct、union、enum、void  控制语句关键字 (12 个): 1、循环控制(5个) for、do、while、break、continue 2、条件语句(3个) if、else、goto 3、开关语句(3个) switch、case、default 4、返回语句(1个) return 存储类型关键字( 5 个) auto、extern、register、static、typedef 其他关键字( 3 个) const、sizeof、volatile 以上是C语言中的所有关键字,每个都有对应的含义以及具体的功能,不进行过多阐述。

那么关键字也有一定的特点,如

· 关键字不能自己创建

· 程序员定义标识符的时候不能和关键字重名


2

接下来引入字符的概念,字符是很好理解的。

百科对字符的解释是这样的:

字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。

所以能打印出来的都可以认为是字符。

但是可能别人认为字符奇形怪状的,不如用特定的数字来规定某个特定的字符。于是有了ASCII编码的诞生,ASCII是翻译过来就是”美国信息交换标准代码“

那么来一览ASCII编码。

Dec是十进制的意思,Hex是十六进制的意思,Oct是八进制的意思。

可以看到,在十进制的情况下,最多有127个字符,而需要记住应该是48-57是数字字符,65到90是大写字母字符,97到122对应的是小写字母字符,不难发现大小写相差32。

而1-31是打印不出来的,32以后的可以打印出来。

让我们结合代码进行直观的理解。

代码语言:javascript
复制
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 32; i <= 127; i++)
	{
		printf("%c ", i);
	}
		return 0;
}

这里用到了for循环,是后面的内容,代码的意思是打印从32到127的字符,%c 被称为占位符,打印不同的数据类型需要不同的占位符,如整型用%d,无符号数用%u等等。

可以注意,%c后面有一个空格,所以打印出来没有那么紧凑。


3

既然有字符的说法,那么就有连续的字符,被称为字符串。

打印字符是%c,那字符串呢?是%s。

如图

那么就有疑问了,用%s打印一个字符行不行啊?

当然可以,大不了就是字符串只有一个字符嘛。

那么接下来,是结束标志。

什么是结束标志呢?——即是字符串结尾的地方。

有人问了,不对啊,abcdef不是f结尾的吗?

ok这里用代码解释。

我打印这个数组里的字符,注意,用大括号括起来,单引号里的才是这个数组的字符内容。

但是一起打印的还有那一串乱码。

这是因为这个数组没有\0,也就是结束标志。那么这个数组后面是随机值,直到碰到了\0才停止。

而用双引号打印的话,后面是默认带了结束标志的,如图

但我如果这样——初始化一下数组,那么会?

是的,我在方括号里面加了一个10,那么代表这个数组被初始化为内存大小为10个字节的数组,

初始化后,abc被放入数组,其他空间默认为0,所以不会出现乱码。

PS:字节相关内容后面介绍。


4

转义字符,顾名思义,转变了原来意思的字符,如n是一个字母字符,\n是转移字符,是代码换行的意思,所以可以知道,转义字符也有特定的意思。

下面来介绍部分转义字符,上图

\a:会让终端发生警报或者闪烁,或同时发生,这里不方便演示,各位方可自行尝试。

\b:这个字符是退格的意思,如图

很容易认为是删除的意思,但实际上是退格,覆盖后面的内容,与删除略有差异。

\n:换行,很容易理解,打印完了换到下一行的开头。

下面一起介绍 \t   \\  

不难发现,第5行打印的内容的\t没有了,这是因为\t也是转移字符,得 \t的意思是一个TAB,也就是一个比较大的空格。

那么第六行呢?把\t改成了\\t,打印出了原本第五行我们想要的内容,那么可以知道,\\这个转义字符代表的是\,是为了防止其他字符被转义的。

那么有了\\的基础,相信不难理解\' 和 \"了,无非就是打印单引号和双引号。

如图

接下来就刚才数组的基础,讲解\0

\0在数组里是结束标志,在表里面可以看到NULL和它在同一行,那么NULL和\0是不是有一样的效果呢?如图

哦哟?NULL和\0的结果是一样的,所以\0等价于NULL。

最后讲解一下\ddd \xdd \?这三个

\ddd 表示这个是有1到3个八进制数组成的数,比如\130代表十进制数88,\03代表十进制数3。

\xdd表示这个是由1到2个十六进制数组成的数,比如\x7f代表十进制数127。

那么有人问,为啥十六进制的数才两个啊?

欸你看ASCII表,最大的十进制数是127,转化成十六进制是7f,所以用不着太多。

仍然上图直观的感受一下。

有关进制转化的内容本章暂且不做讲解。

那么现在讲解一下\?,把它放在最后自然有理由,这个其实很容易理解,不过就是打印问好罢了,但是在远古时期,如vs2010版本,比如打印??),是打印不了的,这被称为三字母词,即??)打印出来是],同理??(打印出来是[,但是在vs2013就不能检验了,当然三字母词不是两个问号随便加一个就可以构成三字母词,所以严谨打问号的话,应该是\?的,当然,目前似乎不太需要。


5

C语言中的代码,也就是由语句一条一条构成的,那么语句也分为几类。

·空语句

·表达式语句

·函数调用语句

·复合语句

·控制语句

空语句最好理解,放上去一个分号,也就是一条空语句,所以,C语言的语句是用;结束的。

表达式语句同样好理解,如int a=10;这就是一个表达式语句。

函数调用语句如printf("\d",123);这就是一个函数调用语句。

复合语句如ffor循环里面加个if语句也是一个复合语句。

重点在于控制语句

控制控制,就是控制C语言中代码的走向,生活中做事无非就是三种方式,顺序,选择,循环。

C语言中也是如此,C语言对其进行了细化,分为9种控制语句

条件判断语句,也就是分支语句:if   ,switch 

循环语句:while  ,do while,  for

 转向语句:continue,goto,break,return

当然,后面会进行专门讲解。


6

注释,无非就是对代码进行一个解释,注释可以体现程序员的素质,为什么这么说呢?

当你写完一段代码后,不对其进行注释,后来别人来解读你这段代码,问你这段代码怎么是这样,然后你也解释不出个所以然,结果就是哦豁,谁都看不懂。

所以注释的必要性是挺大的。

当然,注释使用有两种

一种是//,可以注释单行的代码

另一种是/* */,可以注释一片代码,可这种注释有一定的局限性,不能嵌套使用

所以按需注释。

感谢阅读!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档