我是靠谱客的博主 傲娇世界,最近开发中收集的这篇文章主要介绍c 语言将单引号赋给字符变量,C之单引号和双引号(十三)(示例代码),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在 C 语言中,我们会经常使用到单引号和双引号。那么单引号用来表示字符字面量,双引号是用来表示字符串字面量。

'a' 表示字符字面量,在内存中占1个字节; 'a' + 1表示 'a' 的 ASCII 码加1,结果为 'b'。

"a" 表示字符串字面量,在内存中占2个字节;"a" + 1表示指针运算,结果指向"a"结束符''。

字符字面量在 C 语言中国被编译为对应的 ASCII 码,字符串字面量被编译为对应的内存地址。printf 的第一个参数被当成字符串内存地址,内存的低地址空间不能在程序中随意访问。下图表示三种写法的地址

5facacd467b5fd837756c9b45a37023f.png

我们接下来看个示例代码,代码如下:#include 

int main()

{

char c = " ";

while( (c == "t") || (c == " ") || (c == "n") )

{

scanf("%c", &c);

}

return 0;

}

我们这段代码是想实现当用户输入 tab 键、空格或者回车时,程序继续循环执行。当用户随便输入字母或者数字什么的,程序就执行完毕。我们来编译下看看结果是否如此

38778b9e3e539ebf0983ef45bafa632e.png

并没有实现这个功能,显然编译出了3个警告,而且我们运行后程序仿佛没执行while循环。我们再来仔细分析下这个程序,我们上面 char c = " "; 相当于 char c = "string"; 程序编译后字符串"string"的内存地址被赋值给变量 c;内存地址占 4 个字节,而变量 c 只占1个字节;由于类型不同,赋值后产生截断。那么我们如何解决这个问题呢?只需将所有的双引号换成单引号即可,我们再次编译,得到结果如下:

d2eaa89910b8a9402be05892391f4a47.png

我们看到程序没有编译错误,运行后效果也是我们所期望的。今天我们学习了单引号和双引号的相关知识,总结如下:1、单引号括起来的单个字符代表整数,双引号括起来的字符代表字符指针;2、C 编译器接受字符和字符串的比较但无任何意义,允许字符串对字符变量赋值,只能得到错误。后面我们会继续对 C 语言的学习。

欢迎大家一起来学习C 语言,可以加我QQ:243343083。

最后

以上就是傲娇世界为你收集整理的c 语言将单引号赋给字符变量,C之单引号和双引号(十三)(示例代码)的全部内容,希望文章能够帮你解决c 语言将单引号赋给字符变量,C之单引号和双引号(十三)(示例代码)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部