搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求助帖【C语言数组】
标题:
求助帖【C语言数组】
只看楼主
凉烟劫婠
等 级:
新手上路
帖 子:4
专家分:0
注 册:2017-10-25
结帖率:
0
楼主
问题点数:0 回复次数:11
求助帖【C语言数组】
我定义数组长度为9,然后给九个数,但是我输出数组的时候显示数组溢出。
搜索更多相关主题的帖子:
C语言
数组
输出
显示
溢出
2018-01-26 17:23
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
2
楼
得分:0
0...8
2018-01-26 17:33
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
3
楼
得分:0
char a[9]={'1','2','3','4','5','6','7','8','9'}; //字符数组
char a[10]="123456789"; //字符串,结尾还有个'\0'
2018-01-26 17:37
虫眼
等 级:
贵宾
威 望:
10
帖 子:314
专家分:1121
注 册:2017-11-29
第
4
楼
得分:0
没发现溢出
2018-01-26 17:47
虫眼
等 级:
贵宾
威 望:
10
帖 子:314
专家分:1121
注 册:2017-11-29
第
5
楼
得分:0
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。
2018-01-26 17:50
虫眼
等 级:
贵宾
威 望:
10
帖 子:314
专家分:1121
注 册:2017-11-29
第
6
楼
得分:0
所以使用strlen时,程序员必须确认参数字符数组中包含\0值,否则会出现不可预知后果。
2018-01-26 17:55
凉烟劫婠
等 级:
新手上路
帖 子:4
专家分:0
注 册:2017-10-25
第
7
楼
得分:0
回复 4楼 虫眼
编译器的问题吗?
2018-01-26 17:55
li384022
等 级:
论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
第
8
楼
得分:0
#include"stdio.h"
#include"string.h"
main()
{
int i;
char a[9]="12345678" ;//我的编译器是这个结果是8 char a[9]="123456789" 结果是10 那什么时候是9??
i=strlen(a);
printf("%d",i);
getch();
}
2018-01-29 12:18
虫眼
等 级:
贵宾
威 望:
10
帖 子:314
专家分:1121
注 册:2017-11-29
第
9
楼
得分:0
strlen函数的缺陷,只有最后是\0才会准确.
2018-01-29 13:02
lulipro
等 级:
论坛游民
威 望:
1
帖 子:11
专家分:60
注 册:2016-4-5
第
10
楼
得分:0
C语言的字符串是一种特殊的char数组。特殊在于:这个数组中必须至少要有一个'\0'作为字符串结束的标志。因此要正确存放123456789这9个字符,你还需要为末尾的'\0'预留一个空间,因此数组的长度应该为10才对。
2018-02-02 13:05
12
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-484470-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 2.005516 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved