c语言printf("xyz-123"+2)为什么样结果是z-123?如果 C/C++ 在 #include 的头文件大小超过了内存大小
时间:2017-12-11 19:00:02
浏览:次
点击:次
作者:
来源:
立即下载
求问
手残 之前错打成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\"的类型描述
题主电脑内存该有多小
平均评分
0人
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
