如何把陣列定義成無限
1樓:陽光上的橋
首先,定義無限長的陣列是不可能的,因為電腦記憶體有限、硬碟有限,其實地球的大小、面積都是有限的,我們不應該追求無限。聽說耐稿只有佛法無邊:)
其次,不知道你是不是想說的可變長度,就是程式執行的時侯想100就100、想10就10。如果是變長的話,我非常明確的告訴你,c和c++這類語言不支援變長的陣列,一般都是定義乙個較大的陣列(比如10000),程式只要再這個範圍內都能正常工昌納孝作。另外乙個實現變長陣列的辦法就是利用指標,臨時分配空間。
最後,對於求多少個數的和這樣的程式,其實可以不用定義陣列,茄孫那樣就能實現求「無限」個數的和之功能,例如:
#include
void main()
int i,n,s=0,x;
cout<<"請輸入正整數的個數:";
cin>>n;
cout<<"請輸入正整數:";
for(i=0;i>x;
s=s+x;
cout<<"所有數字的和:"
2樓:網友
不能無簡肢茄限,c++的int型別長度int 4位元組 32位。
超過了會溢位,可以使用多維陣列攔察飢唯int a[10][10][10][n]
可以儲存10*10*10*n個int
可以定義乙個無限大的陣列嗎
3樓:臘部邪
c語言支援定義乙個不顯式定義長度的陣列,即通過初始化資料來分配陣列長度。
比如int a 陣列a的長度沒有顯式給出,由於有5個初始化資料,所以分配空間長度為5個int型。
但是無論如何定義,陣列的長度都是固定的,在定義的時候就已經分配好空間,從這個角度上c語言無法定義無限長的陣列。但很多實際應用中又事先無法確定陣列的長度,對於這類情況,一般有兩種方法可以使用。
1 由malloc和realloc兩個函式,分配動態空間,隨時按需改變陣列的最大長度。
通過下面例子來理解該方法:
#include
#include
int main()
if(a) free(a);/對申請的記憶體進行釋放。
return 0;
從以上程式可以看到,這種方式的原理就是每當陣列空間不足時,利用函式realloc分配一段新的記憶體空間以增大陣列長度。 直到佔滿所有剩餘空間。
如果到佔滿所有空間還是無法存下資料,那麼是硬體無法支援了。
所以這種方法可以做到軟體意義上的無限大陣列空間。
但是這種方法**量比較大,而且需要頻繁的進行記憶體的分配,如果實現知道資料的最大可能規模,那麼可以用另乙個方法。
2 事先知道資料的最大規模,比如統計乙個班的分數時,乙個班最多不超過百人,那麼可以直接定義乙個長度為100的陣列,或者保險起見,定義乙個長度為1000的陣列,並對其操作。這樣在操作範圍內,這個就是乙個「無限長」的陣列了。
C 類定義陣列啥啥意思 20
c 類定義陣列啥啥意思 class k new class class類定義了乙個數字 有三個數。k是class型別的陣列,就像你下面定義的q一樣的,是乙個陣列。類的複製要寫複製函式的,不是直接用等號就行了,等號只是指向同乙個類物件而已,並沒有生出新的物件。k k k 都是新生成的class類的物件...
如何把自己ps成斷手的人,如何把自己ps成乙個斷手的人
能前期的就不要麻煩後期。拍一張楊過那樣的 把乙個手藏在身後,然專後把 在屬ps裡液化處理 就是推 把看上去鼓出來的地方推進去。或者用仿製圖章,選中背景的乙個點,開始磨,可以把你不想要的東西變得和周圍的背景一樣 所以背景最好單一點 怎麼將乙個人 ps到另乙個人的手心,希望有具體步驟 把其中乙個人用鋼筆...
VBA中如何在宣告自定義函式之前給陣列賦值
可以在bai函式中定義靜態型別 dustatic a 只能定義通zhi用型別,否則isempty 檢查不dao出來。if isempty a then 這樣保證回陣列只賦值 答一次redim a 5 as string 對陣列賦值操作 end if vba自定義函式,當引數是陣列時,該如何書寫?兩個...