手持两把锟斤拷, 口中疾呼烫烫烫。

脚踏千朵屯屯屯, 笑看万物锘锘锘。

烫烫烫

简单点说,最常见的就是 数组没初始化 并且按照%s 输出了。

#include<stdio.h>
int main()
{char a[5];a[0] = 'a';//只赋了第一个值printf("%s\n",a);return 0;
}

在windows平台下,ms的编译器在 Debug 模式下,会把代码中未初始化的栈内存全部填成 0xcc,用字符串来看就是"烫烫烫烫烫烫烫"

Visual Studio(或vc++)中的Debug模式下【gcc编译器是另一回事】,如果声明一个变量,但是没有初始化,微软会给未初始化的内存赋值为0xCC。给为初始化的内存赋0xCC是有原因的,0xCC其实是INT3中断指令【这里涉及到汇编语言】,所以如果在Debug模式下试图去执行这块未初始化的内存的话就会中断程序。

屯屯屯

简单点说,最常见的就是malloc后没初始化 并且按照 %s 输出了。

#include<stdio.h>
#include<malloc.h>
int main()
{char *p;p = (char *)malloc(16);if (p)printf("%s", p);//p没赋值、没初始化,直接输出free(p);return 0;
}

在windows平台下,ms的编译器在 Debug 模式下,会把代码中未初始化的堆内存全部填成0xcd,用字符串看就是“屯屯屯屯屯屯屯屯”。

——堆内存和栈内存详解:http://blog.csdn.net/abcjennifer/article/details/39780819【此处涉及计算机操作系统】

1、栈区(stack)—由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 
2、堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表

============================以下两个涉及(中文)字符编码问题=================================

锟斤拷

UTF-8转汉字编码

#include<stdio.h>
int main()
{char *a = "\xef\xbf\xbd\xef\xbf\xbd";printf("%s\n", a);return 0;
}

锟斤拷则涉及unicode字符集转换问题,Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER。U+FFFDUTF-8编码0xEFBFBD,如果重复多次形成:EFBFBDEFBFBDEFBFBD

反复屡次,然后在GBK/CP936/GB2312/GB18030的环境(都是中国标准惹的祸)中显示的话,一个汉字2个字节,最终的结果就是:锟斤拷——锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)……

锘锘锘

微软在 UTF-8 文件头部加上了 EF BB BF BOM 标志。在不支持 BOM 的环境下对其停止 UTF-8 解码失掉"锘"字。

#include<stdio.h>
int main()
{char *a = "\xef\xbb";printf("%s\n", a);return 0;
}

BOM 是 Byte Order Mark 的缩写。是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是可选的,因为UTF8字节没有顺序,所以它可以被用来检测一个字节流是否是UTF-8编码的。

  • 锘EFBB
  • 匡BFEF
  • 豢BBBF

【可能的操作原因】:出现这个问题肯定是你写网页的时候用了记事本 ,记事本在保存文件的时候把原本文件的编码改了记事本会默认保存为UTF-8的编码,而如果你原本网页是GBK编码的,就会出现乱码~

——字符编码相关知识:https://blog.csdn.net/sinat_27382047/article/details/85085224

(字符编码涉及数据读取方式的不同,所以会显示出我们不希望看到的东西……)

比较不错的解释与参考:

——集大成者http://blog.csdn.net/me4weizhen/article/details/51920343(锘锘锘来源)

——考据:http://blog.csdn.net/mig_davidli/article/details/37507731

——有反汇编过程的:https://blog.csdn.net/qianxin_hit/article/details/6128291

——新参考,简洁明了:https://blog.csdn.net/junruitian/article/details/83861069

烫烫烫、屯屯屯、锟斤拷、诺诺诺的简单示例代码相关推荐

  1. 手持两把锟斤拷,口中疾呼烫烫烫

    上面这种乱码的形式我特别映像深刻,刚好今天在学习的时候碰到了,便记录下来. 先理解电脑中是怎么保存数据的. 电脑中的数据 我们知道,电脑所保存的数据,都是010101 的二进制数据.常常在学数据结构的 ...

  2. 手持两把锟斤拷,口中疾呼烫烫烫。 脚踏千朵屯屯屯,笑看万物锘锘锘。

    锟斤拷 Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACT ...

  3. 手持两把锟斤拷, 口中疾呼烫烫烫, 脚踏千朵屯屯屯, 笑看万物锘锘锘

    锟斤拷的来历 GBK与UTF-8 Unicode和老编码体系的转化进程中,一定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLAC ...

  4. 手持两把锟斤拷,口中疾呼烫烫烫。脚踏千朵屯屯屯,笑看万物锘锘锘

    锟斤拷 Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACT ...

  5. 组成原理|手持两把锟斤拷,口中疾呼烫烫烫

    乱码的形成:编码<->解码 手持两把锟斤拷,口中疾呼烫烫烫 脚踏千朵屯屯屯,笑看万物锘锘锘 乱码? 乱码是怎么出现的呢?是CPU太热了?口中疾呼烫烫烫?2333 原因是:同样的文本,采用不 ...

  6. 【考据】“烫烫烫”与“锟斤拷”的原理

    在程序员网站上经常看到一个段子(满满的都是泪啊) 手持两把锟斤拷,口中疾呼烫烫烫. 解释一下为什么会是这两个东西不是别的= =: 棍斤拷乱码: 源于GBK字符集和Unicode字符集之间的转换问题.U ...

  7. 11 | 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?

    11 | 二进制编码:"手持两把锟斤拷,口中疾呼烫烫烫"? 上算法和数据结构课的时候,老师们都会和你说,程序 = 算法 + 数据结构.如果对应到组成原理或者说硬件层面,算法就是我们 ...

  8. 1 分钟带你认识从 � 到 锟斤拷

    作者 | 石头哥 来源 | 程序猿石头(ID:tangleithu) 以一首五言绝句作为开篇,你知道背后说的是什么吗? 手持两把锟斤拷 口中疾呼烫烫烫 脚踏千朵屯屯屯 笑看万物锘锘锘 � 为何物? 在 ...

  9. 看程序员如何给女朋友解释什么是锟斤拷?

    周末女朋友出去逛街了,我自己一个人在家看综艺节目,突然,女朋友给我打来电话. 过了一会,女朋友回来了,她拿出手机,给我看了她在超市拍的照片:  要想知道什么是乱码,需要先从计算机编码说起. 字符编码 ...

最新文章

  1. 【转】Android下编译jni库的二种方法(含示例) -- 不错
  2. 1578: [Usaco2009 Feb]Stock Market 股票市场
  3. ux体验网站 英国_?? 用户体验(UX)资源和工具的完整列表??
  4. MYSQL5.5 YUM更新安装
  5. 版本管理工具 (git 或者 svn)
  6. Leetcode题库 94.二叉树的中序遍历(递归 C实现)
  7. android应用退出后广播无效,关闭应用程序后,保持广播接收器运行
  8. python中对象包含几个部分_python中包含对象类型的两个列表的交集
  9. linux 进入rescue模式,一个简单小例子来说一下Rescue营救模式
  10. P1137【旅行计划】
  11. 北京邮电计算机学院保研概率,北京邮电大学计算机学院(专业学位)计算机技术保研细则...
  12. HBase CURD之Put
  13. 游戏 - PS4 海绵宝宝: 争霸比基尼海滩重注版
  14. JavaScript排他思想
  15. skywalking plugin 开发初探 ONS plugin 实践
  16. vs code远程编辑文件
  17. 【PASCALVOC】The Pascal Visual Object Classes Challenge: A Retrospective
  18. debian linux镜像下载,Debian Wheezy 7.7 发布,已提供镜像下载更新
  19. 腾讯ISUX:精益设计 “纸上谈兵”的说服力
  20. Google翻译问题之——Cloud Translation API has not been used in project x before or it is disabled.

热门文章

  1. OFO戴威如何给大家一个“交代”?
  2. 常微分方程的数值解法—欧拉方法(十三)
  3. Maven 热部署Web项目
  4. JSON和SAP内表转化
  5. 机器学习(二十)无监督学习-K-means算法
  6. JS设计模式 - 观察者模式与发布/订阅模式
  7. 【报告分享】2021中国互联网呼吸健康趋势白皮书-CBNData(附下载)
  8. 紫外可见分光光度计种类的优缺点?
  9. 数据压缩(8):DPCM 压缩系统的实现和分析
  10. html加拼音注释,小学必背古诗80首+带拼音(注释彩打版)(31页)-原创力文档