int a[60][250][1000]数组的遍历面试题
发布日期:2021-06-30 10:11:54
浏览次数:3
分类:技术文章
本文共 678 字,大约阅读时间需要 2 分钟。
请问 下面程序有什么错误?int a[60][250][1000],i,j,k; for(k=0;k<=1000;k++) for(j=0;j<250;j++) for(i=0;i<60;i++) a[i][j][k]=0;
答案说是换循环语句?
int a[60][250][1000]; int i,j,k; for(k=0;k<60;k++) for(j=0;j<250;j++) for(i=0;i<1000;i++) a[k][j][i]=1;
理由是什么呢?
1.在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。
2.k<=1000也是醉了的考点!
3.栈溢出,原因是局部变量是存储在栈中的,栈的容量不足以放下这样的大数组。
于是我换成了小数组,没问题了
int a[10][10][10],i,j,k; for(k=0;k<10;k++) for(j=0;j<10;j++) for(i=0;i<10;i++) a[i][j][k]=0;
加了个static表示静态更好,放在静态存储区,也没有这个问题了。
static int a[60][250][1000],i,j,k; for(k=0;k<1000;k++) for(j=0;j<250;j++) for(i=0;i<60;i++) a[i][j][k]=0;
转载地址:https://islet.blog.csdn.net/article/details/76098273 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月20日 03时12分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ping结果的相关知识点,tracert命令验证
2019-04-30
ARP欺骗原理与模拟
2019-04-30
网络运维相关知识点
2019-04-30
GNS3软件简介
2019-04-30
csdn搜索博主的文章
2019-04-30
ORA-12552: TNS:operation was interrupted
2019-04-30
MyISAM表修复
2019-04-30
GNS3中关联使用SecureCRT
2019-04-30
oracle日期的相关有用统计SQL
2019-04-30
oracle数据库LOB管理
2019-04-30
oracle数据库BFILE的应用demo
2019-04-30
Oracle数据库自定义类型--对象类型
2019-04-30
oracle分区详解
2019-04-30
SuperSlide.js
2019-04-30
oracle查看索引所在表空间及索引重建
2019-04-30
网络知识的三组数
2019-04-30
让nginx支持ipv6
2019-04-30
dbms_metadata.get_ddl的用法
2019-04-30
oracle中PL/SQL学习笔记
2019-04-30