小白爬坑记:C语言学习点滴——我对单、双引号的理解

  • 一、单引号的作用:
  • 二、双引号的作用:
  • 三、字符或字符串容易犯的错误:
  • 三、做个小题:

一、单引号的作用:

将单引号中间的所有符号直接转换为ASCII码,因此它输出的是整形ASCII码。
一般单字符赋值,都用单引号。(字母、数字、各种标点符号括号之类的)
例如:
// 两个小例子帮助弄懂它
int str;
str = '*';   // —内存表现—> 2A 00 00 00 —转为十进制—>  str = 42
str = '**'; //————> 2A 2A 00 00 ————> str = 10794
/*
**仔细揣摩上面两个小例子,能了解单引号作用了**
*/

二、双引号的作用:

概括来说,定义一个字符串双引号其实做了两件事:1、将双引号中所有符号转为ASCII码。
2、将转义符”\0“”加到末尾。例如:
// 字符或字符串的初始化,最好在定义时候就进行初始化,否则很麻烦
char str = "A";    // 这是错误的,装不下,本质为两个ASCII码字节。
char str[] = "A"; // —内存表示—> 41 00  —转十进制—> str[] = 65
char *str = "A";  // 指针方式,与上面一样,但必须懂指针原理
char str[2] = "A";// 初始化赋值的好处

三、字符或字符串容易犯的错误:

切记 :
1、对于字符串数组,无论是静态、局部还是全局,最好在定义时候初始化否则,定义过后再进行赋值初始化时候会比较麻烦。
2、使用指针进行字符串输出或输入时,特别要注意结尾是否有“\0”标志,否则会越界。

1、 定义以后才赋值的麻烦

char str[10];
// 下面几个赋值都错误
str = {0,1,2,3,4,5,6,7,8,9};
str[] = {0,1,2,3,4,5,6,7,8,9};
//老实的一个个取赋值吧!或用循环也可以,如果不规则赋值或100个值累死

★因此字符数组,最好是即用即赋值★

2、输入输出字符串越界
例如:

// 下面例子如果用输出就会发生错误
char str[6] = {'0','1','2','3','4','5'};
printf("%s",str);

输出结果:

012345烫烫烫烫烫
直到内存中遇到 00 时才会停止输出

切记,用指针输出或者赋值字符串时候一定要关注字符串最后是否有"\0"结束符,如果没有咱就给它添加一个。

char str[6] = {'0','1','2','3','4','\0'};
char str[6] = {'0','1','2','3','4',NULL};

三、做个小题:

将一个 int 类型的变量中4个字节的值以内存存储状态的“字符串”打印出来!
char *p;
int number = 0x74657874;
p =(char*)&number;
char str[5] = {p[0],p[1],p[2],p[3],NULL};
printf("%s",str);如果对您有哪怕一捏捏帮助的,请您抬抬贵手,点赞、收藏~感激不尽!!

例如上题,字符串最好是现用、现定,而后定义时候一定要多留一个结尾符号“0”

如果对您有哪怕一捏捏帮助的,请您抬抬贵手,点赞、收藏~感激不尽!!

小白爬坑记:C语言学习点滴——我对单、双引号的理解相关推荐

  1. 小小甜菜深度学习爬坑记

    小小甜菜深度学习爬坑记 主要目的是整理一路学习的技术分享贴.我的电脑是笔记本联想拯救者R720,显卡是GTX1050Ti.其它环境仅供参考. 安装ubuntu+win10双系统 详情见技术贴用 Eas ...

  2. 小小甜菜Movidius爬坑记

    小小甜菜Movidius爬坑记 我是在神经计算棒+树莓派3B上看到实际效果后决定使用本方案的,实际项目中使用树莓派CM3作为核心板卡,使用Movidius 2或Movidius X(具体版本看项目需求 ...

  3. 我在「小米爬坑记」里,看到的 3 个创业真相

    小米把10年的创业经历,做了一次「开源」. 就在昨晚,雷军做了小米十周年的公开演讲.在演讲中,雷军对小米10年的发展做了一次大梳理,既有成绩,也有反思,还有小米历史上一些非常关键的发展节点.其实上个月 ...

  4. 小小甜菜百度AI爬坑记

    小小甜菜百度AI爬坑记 作为国内较好的深度学习平台,我是在2018百度开发者大会拉入坑的.其可分为语音识别,语音合成,文字识别,图像识别,人体分析,人脸识别,理解与互交技术,AR增强现实等多个方向.我 ...

  5. 小小甜菜keras爬坑记

    小小甜菜keras爬坑记 前言 安装(参考深度学习爬坑记安装ubuntu16.04+cuda9+cudnn+tensorflow1.9.0) 视频资料 相关模型资料 学习笔记 ssd模型 yolov3 ...

  6. Spring Cloud Contract 爬坑记

    前言:spring-cloud-starter-contract-verifier:2.1.1.RELEASE. spring-cloud-contract-maven-plugin:2.2.1.RE ...

  7. npm run build 打包爬坑记(1)

    npm run build 打包爬坑记 先说说打包过程,npm run build 后放入phpstudy里面,访问本地ip,查看phpstudy的端口号,就能访问页面了(访问地址:http://19 ...

  8. linux mono jexus性能,docker运行jexus+mono爬坑记,

    docker运行jexus+mono爬坑记, 新的.net core都已经支持docker.手头有一些原来开发的asp.net旧项目,用的asp.net mvc开发的,跑在.net formwork ...

  9. c语言中常量单双引号,C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同。...

    C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言 ...

最新文章

  1. Request method 'GET' not supported解决方式
  2. php 获取对象中的元素个数组长度,获取php类中的数组长度
  3. 甲骨文称 Java 序列化的存在是个错误,计划删除
  4. 【渝粤教育】广东开放大学 社会调查与方法 形成性考核 (35)
  5. 天猫服务系统的架构和经验
  6. std::shared_ptr之deleter的巧妙应用
  7. 树:二叉树的层序遍历算法(超简洁实现及详细分析)
  8. oracle 时间戳最小单位,Oracle时间戳,最大值和最小值
  9. php 连接主从redis,PHP7对Redis的扩展及Redis主从搭建
  10. 音标,口型,舌位对照表:适合已有一定英语基础的人重新回顾音标发音,在不断的练习中让自己的发音更准确,口型更标准。...
  11. 性能测试之JMeter接口关联【JSON提取器】详解
  12. cf1月超级翻盘_CF1月超级翻牌活动地址 2020年CF超级翻盘活动全攻略
  13. 不光是查找值!二分搜索
  14. Ubuntu下 sqlitebrowser 查看 Android Sqlite数据库
  15. 百度地图转换高德地图经纬度问题在线转换工具
  16. app闪退后重启_iphone 开启App狂闪退?6个步骤即刻救援!
  17. pc端微信聊天记录备份
  18. mysql查询最近三个月数据方法
  19. linux conforming code segment nonconforming code segment
  20. 怎么将.tex文件转换成pdf

热门文章

  1. python调用企业微信机器人API-自动发送文本、图片与CSV文件3种方式
  2. 【华为机试真题 Python实现】考古学家【2022 Q2 | 100分】
  3. rapidio 网络枚举--深度优先遍历算法
  4. 男人疼爱老婆98个经典细节
  5. Android单例模式应用场景
  6. javac不是内部或外部命令,也不是可运行的程序
  7. “是啊,不是姓朱的那种败类就好,
  8. 自由幻想系统不能提供服务器,自由幻想手游为什么不能转区 人物转区注意事项...
  9. CSS-应用方式、选择器、常用属性
  10. macd的VB计算机程序,基于动态VWAP算法和MACD分析的程序化交易研究