C语言之旅0---数据类型和变量【0】

1.关键字介绍

  • 关键字就是一些具有特殊意思的一些单词,比如:if,int,while 等。这个int,各位应该都熟悉吧!(对喽,前面咱们写过–int main()),在C语言中,有些单词被赋予特殊含义 和用法,以供程序员们去使用,也就有了今天所说的关键字是不是一点也不神 秘呀)。在C99之前,C语言中规定了32个关键字。如下所示:在这里插入图片描述
  • 关键字的注意事项:
    • 1.关键字是由C语言指定单词,是不能自己创建关键字的
    • 2.变量名不能与关键字重复
  • 注意一下下:
    • 在C99之后,新增了一些关键字inline,restrict, _Bool _, _Complex, _Imaginary等关键字。
    • 这些关键字不需要像背单词一样,不用去刻意背,后面我们都会讲到的,讲着讲着和你用着用着,自然而然就记住了。
  • 有关关键字的信息链接(感兴趣的朋友可以看一下哟)
    C语言关键字全部介绍:https://zh.cppreference.com/w/c/keyword

2.字符和ASCII编码

  • 字符
    • 字符这玩意太常见了,我们现在所用的中文字体,英文字体等,都是字符。在C语言中用''括起来东西,被称为字符。比如:'a','0','\n'等。
  • ASCII编码
    • As we all know,计算机只能识别二进制指令,所以数据都是以二进制形式进行存储的后面会讲到数据在内存中的存储方式,各位期待一下)。比如,10的二进制——000...1010。我们知道数值可以通过与二进制的关系转换成二进制(点击:进制转换的方法)进行储存。但字符 与二进制没有半毛钱的关系那怎么进行储存呢?,这个时候呢,美国国家标准学会(ANSI),就给每一个字符规定了一个二进制序列——编码。每个字符对应一个数值这个数值就是ASCII值。以十进制表示的值),如图所示:在这里插入图片描述
      更多信息请参考:点击直达:https://zh.cppreference.com/w/cpp/language/ascii
  • 这些ASCII值,我们不需要去记忆,用到的时候直接去查一下ASCII表就OK了。 不过,有几点我们还是要有所了解的(要记住的
    • 1.字符A ~ Z的ASCII码值从 65~ 90.
    • 2.字符a ~ z的ASCII码值从97~122.
    • 3.对应的大小写字符的ASCII码值的差值是32.
    • 4.数字字符0~ 9的ASCII码值从48~57.
    • 5.换行符\n的ASCII码值是:10.
    • 6.这些字符中ASCII码值从0~31这32个字符是不可打印字符,无法打印在屏幕上观察。
  • 可打印的字符代码展示
    下面展示一些 。
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
int main()
{
	int i = 0;
	for (i = 32; i < 127; i++)   //因为32之前的字符是不可打印字符
	{
		printf("%c ", i);
	}
	return 0;
}

运行的结果,如图:在这里插入图片描述

3.字符串和\0

  • 字符串:
    • 很好理解,就是由单个字符组成的,像糖葫芦一样给穿起来,用""括起来的东东就是字符串,比如"abcdef"
  • \0 :
    • 这个字符具有结束的作用,用于字符串的结束标志
    • 接下来看一组代码,以便我们进行'\0'的讲解。下面展示一下 。
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
int main()
{
	char arr1[] = "abcdef";        //打印字符串abcdef
	char arr2[] = { 'a','b','c','d','e','f' };
	printf("arr1=%s \n", arr1);  //%s是字符串占位符,后面咱们会讲解的
	printf("arr2=%s ", arr2);
	return 0;
}

运行结果,如图所示;在这里插入图片描述
如图所示,是打印字符串的两种不同形式。如代码所示,arr1正常打印abcdef,但arr2却打印一些abcdef烫烫……乱码。之所以会出现这两种情况,那是因为在arr1里面的字符串abcdef后面结尾处自动补个'\0',但在arr2里面却没有它,所以就出现了两种不同结果。上面我们讲过'\0'停止标志位(结束标识符)。所以,在打印arr1中的字符串的时候,是一个一个进行打印的‘,遇到'\0'就结束打印。恰恰相反,在arr2中,也会一个一个进行打印,但在打印abcdef的过程中,由于没有遇到'\0',所以就不会停下打印,至于后面打印什么就一无所知了(所以就出现了乱码),直达后面随机出现一个'\0',才会停止,所以就出现了上图所示那样 “烫烫……” 之后就停止了。

  • 修改后的代码如图所示;
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
int main()
{
	char arr1[] = "abcdef";
	char arr2[] = { 'a','b','c','d','e','f','\0'};//加了字符'\0'
	printf("arr1=%s \n", arr1);
	printf("arr2=%s ", arr2);
	return 0;
}

运行结果图:在这里插入图片描述
这回可以看出来,在arr2中加了字符'\0',后,就正常打印了。所以有和没有'\0',差别很大吧。,我们要记住,打印字符串的时候系统会自动在后面加'\0'字符,而其他就不行了,比如arr2.

4.转义字符

  • 转义字符,顾名思义就是转变了原有字符的意思。以加个\的形式就转意了原本字符的意思。C语言中的转义字符如下所示:
    常用型在这里插入图片描述
    不常用型在这里插入图片描述
    转义字符参考:https://zh.cppreference.com/w/c/language/escape
  • 挑几个进行简单的讲解(大家可以自己去试试)'\?'这个标识符的作用是防止信息被编译器解析成三字母词,(当然现在的新版的编译器已经没这个问题了),以前旧版本编译器有这个诟病。比如,我想输入printf("(are you ok??) "),在旧版本的编译器中,会把连续的?)转换成],即:??)------>],所以在老版本中为了解决这个问题,就加了个'\?',防止被解析成三字母词。
    • ‘\n’,相必大家在前面的代码中都见到过了吧,它就是换行符,就是为了美观,老是打印信息在一行也不好看,对吧。给大家看看有和没有'\n'的区别:在这里插入图片描述
      是不是都打印在一行很不美观,不便于观察信息。
    • '\ddd’的用法ddd表示1~3个八进制数字,可以认为它就是字符的八进制表示方法. 1位,2位,3位数字都OK,只要是八进制就OK, 比如。'\123'对应的十进制(ASCII码值)—83—对应的字符是'S',代码展示;
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
int main()
{
	printf("%c", '\123');
	return 0;
}

结果运行图:在这里插入图片描述

  • ’\xdd‘就是字符的十六进制表示方法,可以类比上面的\ddd别忘了dd表示 数字哟,在这里就不再详细概述了,直接上代码展示:
#define  _CRT_SECURE_NO_WARNINGS	1
#include <stdio.h>
int main()
{
	printf("%c", '\x23');
	return 0;
}

运行结果:在这里插入图片描述
剩下的转义字符,请大家自行试试

5.看图放松一下呗!!!

请边听歌边看图片放松e下 https://y.qq.com/n/ryqq/player
在这里插入图片描述
人生不止眼前的苟且,还有诗和远方。感谢你能看到这里,点赞+关注+收藏是对我最大的鼓励,谢谢!!! 各位,我们下期见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值