首页 > 其他分享 >C语言简述2

C语言简述2

时间:2024-06-03 12:28:17浏览次数:19  
标签:字符 打印 转义字符 C语言 简述 printf 字符串 ASCII

文章目录


前言

接这个上一节课知识点讲,我们在上一节已经说了怎么创建第一个C语言程序,现在我们来讲其中一些知识点。


一、关键字介绍

在C语言中比如 if,return,int 这些符号被称为保留字或者关键字。
C语⾔的32个关键字如下:

1.auto break case char const continue default do double else enum
extern

2.float for goto if int long register return short signed sizeof
static

3.struct switch typedef union unsigned void volatile while
• 关键字都有特殊的意义,是保留给C语⾔使⽤的
• 程序员⾃⼰在创建标识符的时候是不能和关键字重复的
• 关键字也是不能⾃⼰创建的。

二、字符和ASCCII码表

在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号括起来的,如:‘a’,‘b’,‘@’。
我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些字符在内存中分别以什么样的⼆进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语⾔中的字符就遵循了 ASCII 编码的⽅式。

参考:https://zh.cppreference.com/w/cpp/language/ascii
我们不需要记住所有的ASCII码表中的数字,使⽤时查看就可以,不过我们最好能掌握⼏组特殊的数据。
• 字符A-Z的ASCII码值从69~90
• 字符a-z的ASCII码值从97~122
• 对应的大小写字符(a和A)的ASCII码值的差值是32
• 数字字符0-9的ASCII码值从48~57
• 换⾏ \n 的ASCII值是:10
• 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察

单个字符的打印可以使⽤%c来指定格式:

int main()
{
	printf("%c\n",'Q' );
	printf("%c\n", 81);

	return 0;
}

在这里插入图片描述

三.字符串和\0

1.字符串

C语⾔中如何表⽰字符串呢?使⽤双引号括起来的⼀串字符就被称为字符串,如:“abcdef”,就是⼀个字符串。
字符串的打印格式可以使⽤ %s 来指定,也可以直接打印如下:

int main()
{
	printf("%s\n", "hehe");
	printf("hehe");
	return 0;
}

请添加图片描述

2.\0字符

C语⾔字符串中⼀个特殊的知识,就是在字符串的末尾隐藏放着⼀个 \0 字符,这个 \0 字符是字符串的结束标志。

在这里插入图片描述
对于字符串"hehe",我们实际上看到了4个字符:h,e,h,e,但是实际上在末尾还隐藏⼀个 \0 的转义字符, \0 是字符串的结束标志。所以我们在使⽤库函数 printf() 打印字符串或者strlen() 计算字符串⻓度的时候,遇到 \0 的时候就⾃动停⽌了。
C语⾔中也可以把⼀个字符串放在⼀个字符数组中,我们在这⾥利⽤下⾯的代码验证⼀下 \0 的功能。

int main()
{
	char arr1[] = { 'h','e','h','e' };
	char arr2[] = "hehe";
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	return 0;
}

在这里插入图片描述
上面的运行结果出现了很多我们没有打印的字符串,那这个是为什么呢
我们可以先一步步看上面代码,操作如下,先按F10进行调试界面(有的电脑需要按Fn+F10),然后在下面界面点到监视窗口,那一个监视窗格都可以。
在这里插入图片描述

然后可以继续按F10,让程序一步一步走,走到return 0,然后监视窗格中添加要监视的项输入arr1,然后在下面的添加要监视的项输入arr2在这里插入图片描述
在这里插入图片描述
这样我们可以观察一下arr1和arr2中的内容
我们可以看到, arr1 字符数组在打印的时候,打印了 h,e,h,e后还打印了⼀些随机值,这就是因为 arr1 在末尾的地⽅没有 \0 字符作为结束标志,在打印的时候没有停⽌。
但是 arr2 的打印就是完全正常的,就是因为 arr2 数组是使⽤字符串常量初始化的,数组中有 \0作为技术标志,打印可以正常停⽌。
如果我们在arr1数组中单独放⼀个 ‘\0’ 字符会怎么样呢?
在这里插入图片描述
我们来看调试的结果
在这里插入图片描述
这样打印也正常了,那从上述的例⼦我们确实能够观察到 \0 的作⽤和重要性的。

三.转义字符

也许在前⾯的代码中你看到 \n , \0 很纳闷是啥。其实在字符中有⼀组特殊的字符是转义字符,转义字符顾名思义:转变原来的意思的字符。
比如我们正常打印一串字符:
在这里插入图片描述
如果我们在代码中间加上\n,会变成什么样
在这里插入图片描述
我们可以看到修改的前后代码输出的结果,截然不同的,那这是为什么呢?
这就是转义字符的问题, \n 是⼀个转义字符表⽰换⾏的意思,我们可以简单的理解为 \ 让 n 的意思发⽣了转变, n 本来是⼀个普通的字符,被 \ 转义为换⾏的意思。
C语⾔中像这样的转义字符还有⼀些,具体如下:
• ? :在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上没法验证了。
• ’ :⽤于表⽰字符常量’
• " :⽤于表⽰⼀个字符串内部的双引号
• \ :⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。
• \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。
• \b :退格键,光标回退⼀个字符,但不删除字符。
• \f :换⻚符,光标移到下⼀⻚。在现代系统上,这已经反映不出来了,⾏为改成类似于 \v 。
• \n :换⾏符。
• \r :回⻋符,光标移到同⼀⾏的开头。
• \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。
• \v :垂直分隔符,光标移到下⼀个垂直制表位,通常是下⼀⾏的同⼀列。
下⾯2种转义字符可以理解为:字符的8进制或者16进制表⽰形式
• \ddd :d d d表⽰1~3个⼋进制的数字。 如: \130 表⽰字符X
• \xdd :d d表⽰2个⼗六进制数字。 如: \x30 表⽰字符0
\0 :null 字符,代表没有内容, \0 就是 \ddd 这类转义字符的⼀种,⽤于字符串的结束标志,其ASCII码值是0.

因为太多我就不一一展示了,感兴趣的同学可以验证一下上面的转义字符。

总结

上面我们学了,关键字,字符,ASCCII码表和转义字符,希望可以给你带来帮助,如果上面过程中有不懂的疑问,欢迎私信,上面如果有说法不到位的地方,欢迎批评和指正。

标签:字符,打印,转义字符,C语言,简述,printf,字符串,ASCII
From: https://blog.csdn.net/2301_82235279/article/details/139407793

相关文章

  • 关于网易游戏官网-部分游戏页面特效实现思路的简述
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18032062>出自【进步*于辰的博客】大学学习前端的时候,我们团队以【网易游戏官网】中的部分游戏页面作为参考开发了一些页面作为实训作品(作品源码我已上传→网易游戏官网-部......
  • Qt中怎么引用C语言的.c文件?
    Qt窗口项目使用的源文件是.h/.cpp文件,它们是对应C++文件。在实际应用中,你可能有现成的.h/.c文件需要引用。那么,这些文件能够引用吗?又怎么引用呢?以下来讨论这个问题。本例在ubuntu18中Qt5.8.0的Widgets项目编译通过,估计在CentOS和Windows系统也应该可以通过。一般情况下,通过宏“#......
  • Qt中怎么引用C语言的.h文件?
    Qt窗口项目使用的源文件是.h/.cpp文件,它们是对应C++文件。在实际应用中,你可能有现成的.h/.c文件需要引用。那么,这些文件能够引用吗?又怎么引用呢?以下来讨论这个问题。本例在ubuntu18中Qt5.8.0的Widgets项目编译通过,估计在CentOS和Windows系统也应该可以通过。本例要引用的.h文件......
  • 数据结构-单链表操作及代码实现(C语言)
    (一)单链表与线性表支持随机访问的特点相比,单链表的特点是适合插入与删除。结构体定义typedefintElementType;//数据元素类型定义typedefstructLNode//单链表结构体定义{ElementTypedata;//数据域structLNode*next;//存储下一个结点的地址}LNode,*L......
  • 【C语言进阶】--- 动态内存管理
    动态内存管理函数1.malloc函数void*malloc(size_tsize);功能:向堆区的空间中申请一块大小为size个字节的空间,返回指向这块空间的指针如果开辟失败会返回一个NULL指针,因此要检查malloc的返回值,避免返回NULL指针后再访问空指针malloc申请的空间,程序退出后会还给操作系统......
  • 轻松拿捏C语言——【文件操作】
    ......
  • C语言文件操作
    一.文件的先关知识1.1什么是文件?                                                  磁盘上的文件是文件,在程序设计的时候,我们一般将文件分为两种:程序⽂件、数据⽂件(......
  • 【C语言项目实战】使用单链表实现通讯录
                                                                  ......
  • c语言基本概念和数据类型常见问题
    1.两种特殊的转义字符:\ddd和\xdd是什么?• \ddd :ddd表⽰1~3个⼋进制的数字。如: \130表⽰字符X• \xdd :dd表⽰2个⼗六进制数字。如:\x30表⽰字符02.指出里面哪些是转义字符,并给出运行结果printf("%zd\n",strlen("c:\\test\128\abcd.c"));转义字符有: \\ , \1......
  • OC语言学习——UI(一)
      目录  UIView1.UIView的基础概念2.UiView的层级关系UIWindowUIViewController1.UIViewController基础2.UIViewController的使用定时器和视图移动UISwitch控件步进器和分栏控件警告对话框和操作表UITextFieldUIScrollView基础滚动视图的高级功能UIView......