c语言printf("xyz-123"+2)为什么样结果是z-123?如果 C/C++ 在 #include 的头文件大小超过了内存大小

发表时间:2017-12-11 19:00:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《电视盒子哪家强?盈通的主板为什么样不能上G1840的CPU5》相关知识。本篇中小编将再为您讲解标题c语言printf("xyz-123"+2)为什么样结果是z-123?如果 C/C++ 在 #include 的头文件大小超过了内存大小。

求问

手残 之前错打成xzy了……

解释①下

其实这个是某个cocoscreator群的入群验证问题

由于cocoscreator是用js的顺手就当成字符串相加回答的 结果并不正确 后来用c的编译器走了①遍发现了这个结果

就很好奇为什么会有这种结果 因为我用c并不多 就能艹点单片机 而我单片机程序设计里从没用到过这种操作

最后 牢骚①下 为什么cocoscreator的验证问题问这个?

因为这个代码相当于:

const char array[] = {\'x\', \'y\', \'z\', \'-\', \'①\', \'②\', \'③\', \'⓪\'};

const char *p = array + ②;

printf(p);

另外看有些答案直接说\"xyz-①②③\"类型是const char *或char *,小小纠正①下:

string literal的类型并不是const char *

C语言的规定是,字符串literal的类型是char [N],N是这个字面量占用内存空间大小(含末尾⓪),C++则规定是const char [N]

C++中可以直接用typeid看类型,C中可以有多个证明办法,比如sizeof,或者:

int *p =

然后看编译报警信息中对&\"hello\"的类型描述

题主电脑内存该有多小

编后语:关于《c语言printf("xyz-123"+2)为什么样结果是z-123?如果 C/C++ 在 #include 的头文件大小超过了内存大小》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《为什么样贴吧里几乎所有装机大神都反对用AMD的CPU?AMD和英特尔现在的CPU工艺都是14nm应该不是同等级的吧》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题