水木社区手机版
首页
|版面-C程序设计语言(CProgramming)|
新版wap站已上线
返回
首页
|
上页
|
2/2
|
转到
主题:请教一个字符串的问题
31楼
|
shouge111
|
2022-07-20 20:10:43
|
展开
会打印
【 在 zyt 的大作中提到: 】
: 如果一直没遇到0内存值,后边的都会打印出来吗?
:
--
FROM 112.32.8.*
32楼
|
shouge111
|
2022-07-20 20:19:54
|
展开
有道理:char a[8] = "123456789"; printf("%s",a);
结果就是如图,后面有个方框
【 在 biglei 的大作中提到: 】
: 原因很简单,一般内存是4字节或者8字节对齐的,你申请了5个空间,实际可能给你的是8个空间。一般情况下你存储8个字符是没问题的。也就是说字符串的话是7个字符串加\0,如果你打印第9个就知道了。
--
修改:shouge111 FROM 112.32.8.*
FROM 112.32.8.*
33楼
|
shouge111
|
2022-07-20 20:35:47
|
展开
这就是字符串的赋值啊: char a[5] = "12345";
字符数组是: char a[5] = {'1','2','3','4','5'};
【 在 tianzong 的大作中提到: 】
: 群里高手多啊,唤起了我的c记忆
: 你分配的是字符数组,不是字符串,字符串会自动分配\0,字符数组可不是,碰到哪里有\0了就在哪里停下来打印,你把a[5]改成10再试试
: 重新编译一次就没这问题了
: ...................
--
FROM 112.32.8.*
57楼
|
shouge111
|
2022-11-11 19:09:35
|
展开
嗯,是的。就是不要这么做,写正确程序
【 在 jsj020107 的大作中提到: 】
: 看编译器
: 一般编译就会报错,这不数组越界吗.....
--
FROM 112.32.8.*
首页
|
上页
|
2/2
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版