int a[60][250][1000]数组的遍历面试题
发布日期:2021-06-30 10:11:54
浏览次数:4
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月11日 17时20分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
微服务springcloud2系列篇-网关GATEWAY跨域问题
2019-04-30
Java并发以及多线程基础
2019-04-30
软件质量的8个特性
2019-04-30
应届渣渣前端的艰难求职之路
2019-04-30
2021年不可错过的17种JS优化技巧(一)
2019-04-30
2021年不可错过的17种JS优化技巧(二)
2019-04-30
月薪15~20k的前端面试问什么?
2019-04-30
一文学会使用Vue3
2019-04-30
我是如何看Vue源码的
2019-04-30
在 Vue 中用 Axios 异步请求API
2019-04-30
LVM逻辑卷------基础命令详解(三分钟入门)
2019-04-30
LVM逻辑卷------详细操作过程(三分钟上手)
2019-04-30
mysql——介绍及安装与基本用法
2019-04-30
MySQL数据库之索引
2019-04-30
MYSQL——事务操作+视图+存储引擎
2019-04-30
Mysql——完全备份+增量备份+备份恢复
2019-04-30
MySQL进阶查询(SELECT 语句高级用法)
2019-04-30
Mysql 之主从复制
2019-04-30
LVS负载均衡------NAT模式
2019-04-30