动态数组是什么?
当小白抱着这个问题去问大佬的时候,80%的回答就是:动态数组就是可以变化长度的数组,就这么简单,没啥难度。
于是小白心中就容易产生一个概念,动态数组就是长度可以变化的数组,长度可以任意变,那什么时候变、怎么变,,,额 不想了,刚问完说懂了的,再问也不合适,下次代码碰到再说吧。。。
70%你会忘记这个问题,25%你会使用增加删除操作更灵活的集合(ArrayList),5%的可能你会再去问动态数组的概念,掌握住它。所以,干脆在第一次查的时候就搞明白这些问题:
1.什么是动态数组
2.动态数组怎么定义
3.动态数组怎么变化的
4.举个例子让我看看数组和动态数组的区别
那么我们一个一个来看一下:
1.什么是动态数组
动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的x下标;当要用它时,可随时用ReDim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。
2.创建动态数组 && 3.动态数组怎么变化的
int main(){
int arrLen; // 数组长度
int *array; // 数组指针
int i; // 数组下标
printf("输入数组长度:");
scanf("%d", &arrLen);
// 动态分配内存空间,如果失败就退出程序
array = (int*)malloc( arrLen*sizeof(int) );
if(!array){
printf("创建数组失败!\n");
exit(1);
}
// 向内存中写入数据
for(i=0; i<arrLen; i++){
array[i] = i+1;
}
// 循环输出数组元素
for(i=0; i<arrLen; i++){
printf("%d ", array[i]);
}
printf("\n");
free(array);
system("pause");
return 0;
}
4.举个栗子
一个最简单最简单的小程序,输入几个数,程序找出其中的最大值返回给用户。
理一下思路,将输入的数字存入一个数组,循环遍历数组,比较选出最大值max,循环结束后返回max值,但现在的问题是数组建多大合适?用户要输入多少个数,不知道,定义个10?万一输入11个呢,那定义个99999肯定够了吧,够是够了 但是要浪费多大空间?
那么我们怎么建数组呢,动态数组:·
int m;
int *array=new int [m];
用户输入多少个,我建多大。
以上
太阳尚远 但必有太阳
今天的文章动态数组是啥分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/5194.html