關於循環、數組定義的理解

由於之前一些原因,我的基本知識不夠,所以有時候以爲是本來就是這樣的一些東西其實是錯的,這也影響了我的編程,這裏因爲上一篇的簡單水題我竟然出錯了,這時候纔來好好研究了一下下,越發相信這種說法:“學得越多越覺得自己學得不夠”。

這裏我做了一點測試,是關於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了所以有時候是沒有問題的,但是有時候比如數組,就不會去賦值,就容易出問題。

這裏我看到自己的基礎的確疏漏很多,所以那些基礎的書還是得多看看多理解纔是,不然之後又會有我以爲是常識的一些奇奇怪怪的東西來讓我犯各種奇怪的錯誤,果然我還差得遠吶。所以要加油!現在還來得及,總歸不是大四找工作了才醒悟,不是嗎。加油!下一次,就不會有這種錯了呢,每一步都比之前更完美。

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