关于循环、数组定义的理解

由于之前一些原因,我的基本知识不够,所以有时候以为是本来就是这样的一些东西其实是错的,这也影响了我的编程,这里因为上一篇的简单水题我竟然出错了,这时候才来好好研究了一下下,越发相信这种说法:“学得越多越觉得自己学得不够”。

这里我做了一点测试,是关于for,while循环及int一个数组的相互影响。。。渣渣语文不好。

#include <iostream>
using namespace std;
int main()
{
int n;
int a[3]={1,2,3};
cin>>n;
int nn=n;
while(n--)
{
if(n==nn-1)
a[1]=199;
else
int a[3];
cout<<a[0]<<endl<<a[1]<<endl<<a[2]<<endl;

}
return 0;
}


其实也有一些别的实验,在这个代码的基础上,主要是用来理解定义一个数组到底是怎样的效果。

试验了多次加上看了些东西,自己的感觉是首先,循环的意义。比如while,其实就相当于把wihle花括号里面的代码多写了几遍,当前循环执行的代码是在上一次执行的基础上的,所以说我们每次循环都把sum+=1,sum最后的结果是加的总次数,如下

#include <iostream>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int sum;
if(n==1)
sum=0;
else
sum+=1;
cout<<sum<<endl;
}
return 0;
}

那么

就算每次运行循环的时候都有int sum这个语句,实际上已经被定义了的数或数组是不会被重新定义的,原来有的数据都会在里面的,所以我在循环的时候要注意使用的数组之类的初始化与释放。当然int a[100]我还没找到能delete的方法,new倒是可以用delete,还有=null。所以我比较青睐于memset,头文件是cstring。

这个问题其实在我的编程过程中是出现了很多次的,但是可能因为有时候int了就直接赋值0了所以有时候是没有问题的,但是有时候比如数组,就不会去赋值,就容易出问题。

这里我看到自己的基础的确疏漏很多,所以那些基础的书还是得多看看多理解才是,不然之后又会有我以为是常识的一些奇奇怪怪的东西来让我犯各种奇怪的错误,果然我还差得远呐。所以要加油!现在还来得及,总归不是大四找工作了才醒悟,不是吗。加油!下一次,就不会有这种错了呢,每一步都比之前更完美。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章