| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:突然发现数组元素可以超过数组长度 求解
只看楼主 加入收藏
a974723617
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2015-10-20
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:6 
突然发现数组元素可以超过数组长度 求解
突然发现数组元素可以超过数组长度。
#include<stdio.h>
int main()
{
int a[3];
scanf("%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4]);
printf("%d%d%d%d%d",a[0],a[1],a[2],a[3],a[4]);
}
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2015-11-12 08:41编辑过]

搜索更多相关主题的帖子: 元素 
2015-11-11 23:20
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:3 
巧合

一片落叶掉进了回忆的流年。
2015-11-11 23:24
lzl123321
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:41
专家分:148
注 册:2015-10-15
收藏
得分:3 
以下是引用a974723617在2015-11-11 23:20:50的发言:

突然发现数组元素可以超过数组长度这事怎么回事。
#include<stdio.h>
int main()
{
    int a[3];
    scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4]);//
    printf("%d%d%d%d",a[1],a[2],a[3],a[4]);
}


int a[3];
    scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4]);

首先,这里为数组第2,3元素赋值,同时为数组最后一个元素顺序向后的两个内存空间赋值(数组分配空间是连续的,超出部分向后依然连续),不过这样有一个问题,int a[3],系统会分配三个内存,三个内存后的数据被修改后对系统有没有影响是不确定的,有潜在风险。
再者超出部分已经不属于数组a[3]了,同时题主忘了给数组第一个元素赋值!所以数组a[3]输出肯定会出问题的!

个人看法!
2015-11-12 03:17
河北沧州黄骅
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2015-10-18
收藏
得分:3 
编译器问题
2015-11-12 08:05
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
不知道
2015-11-12 08:16
wan741852963
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2015-11-7
收藏
得分:3 
这也行?
2015-11-13 15:11
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
抱着这种想法写代码的人  si都不知道咋si的

DO IT YOURSELF !
2015-11-13 15:18
快速回复:突然发现数组元素可以超过数组长度 求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017442 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved