1樓:匿名使用者
用於儲存這些程式設計師直接宣告的變數的記憶體區域叫棧,是一種高速連續的記憶體區域,其大小是有限制的,不超過2m。
一個int型資料佔有4個位元組,那麼能宣告2 * 1024 *1024 /4=524288個。
當然這是一種假設。
回答補充:一個int資料一共有4*8=32位,其中第一位是符號位,不計入,他可以表達最大的數值是2^31-1=2147483647。
如果你要用陣列的方式來拓展一個數值的大小,那麼你就需要自己定義計數演算法了,那樣比較的有難度。
附:double型的一共是8*8=64位。
2樓:匿名使用者
不同資料型別有不同的長度
byte : 8-bit (8位二進位制數,長度為2^8=256)short: 16-bit ( 2^16)int :
32-bit (2^32=約為十億單位的數)long: 64-bit (2^64)
float : 32-bit ( 10^38)double:64-bit (10^324)
3樓:來自上清鎮勤奮的美羊羊
看電腦記憶體大小了,一般個人電腦約在百萬級
c/c++中如何獲取陣列的長度
4樓:西西哩的小馬甲
方法:使用sizeof(array) / sizeof(array[0]), 在c語言中習慣上,在使用時都把它定義成一個巨集。
比如#define get_array_len(array,len) 。而在c++中則可以使用模板技術定義一個函式。
比如:template intgetarraylen(t& array)
這樣對於不同型別的數 組都可以使用這個巨集或者這個函式來獲取陣列的長度了。
基礎語法
1、c語言資料型別
c的資料型別包括:整型、字元型、實型或浮點型(單精度和雙精度)、列舉型別、陣列型別、結構體型別、共用體型別、指標型別和空型別。
2、常量與變數
常量其值不可改變,符號常量名通常用大寫。
變數是以某識別符號為名字,其值可以改變的量。識別符號是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應儲存單元。
5樓:匿名使用者
1. 算術表示式:
#include
int main()
或者#include
int main()
2. 函式模板引數自動推斷:
#include
template
inline size_t count( t ( & arr )[n] )
int main()
3.標準c++模板庫:
#include // 注意包含此標頭檔案.
#include
int main()
4.模板特化與自動型別推斷:
include
template
class computesize;
template
class computesize;
int main()
5. visual c++編譯器預定義巨集:
#include
#include
int main()
6. boost庫:
#include "boost/range.hpp"
#include
int main()
上面的方法適用於靜態陣列,動態的陣列(new)是無法獲取元素個數的。
上面的**,自己可以編譯執行看看,如果手上沒有編譯器測試上面的**或者編譯失敗,可以在下面的頁面上編譯執行(最新版本的visual c++):
6樓:匿名使用者
#include「string.h」
strlen(a)求字元陣列的大小是
sizeof(a)/sizeof(a[0]);這種基本上萬能
7樓:匿名使用者
就是sizeof(陣列物件)就可以啊,我這裡可以
c++:如何獲得一個陣列的長度
8樓:草原上之狼
方法:使用sizeof(array) / sizeof(array[0]), 在c語言中習慣上,在使用時都把它定義成一個巨集。
比如#define get_array_len(array,len) 。而在c++中則可以使用模板技術定義一個函式。
比如:template intgetarraylen(t& array)
這樣對於不同型別的數 組都可以使用這個巨集或者這個函式來獲取陣列的長度了。
基礎語法
1、c語言資料型別
c的資料型別包括:整型、字元型、實型或浮點型(單精度和雙精度)、列舉型別、陣列型別、結構體型別、共用體型別、指標型別和空型別。
2、常量與變數
常量其值不可改變,符號常量名通常用大寫。
變數是以某識別符號為名字,其值可以改變的量。識別符號是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應儲存單元。
c++中,怎麼求整型陣列的實際長度?
9樓:匿名使用者
這個 你可以定義一個 int nszie= 0;
每插入一個數nszie+1;
或者自己寫一個函式,遍歷一下陣列,就可以得到其大小。
10樓:
首先,cin>>a[20]; 這樣是不行的。這樣寫相當於只輸入陣列的第21個數,超出了陣列的最大範圍了。20個資料的陣列,最大下標是19
其次,陣列定義的時候,如果 沒有賦初值,那麼系統會自動給所有陣列元素自動賦值0
再次,想要求陣列長度可以這樣:
int a[20];
int len;
len = sizeof(a);
這樣求出來的值會是80,因為int資料佔4位元組,20個就是80位元組陣列的長度和你是否輸入陣列的值無關,反正定義時沒給初值就自動賦值0的只要是int型的陣列,每個元素都是4位元組。
11樓:
其實,你看一下下面這段**,可以求出整形陣列的實際長度#include
using namespace std;
int main()
;a[0] = 1;
a[1] = 2;
for (int i = 1; i < 10; i++)cout << length << endl;
return 0;}
12樓:倒黴熊
首先整型陣列不能這樣輸入:
int a[20];
cin>>a[20];
所以,你這個問題的前提就不對了。首先你應該知道輸入多少個整數,迴圈獲得輸入。
13樓:
不行吧,還沒發現有什麼辦法
c++中定義一個陣列一定要給出長度嗎?
14樓:匿名使用者
是的,定義陣列必須給出其長度,想要改變其大小也有幾種方案1、用巨集定義
#define arraysize 10int array[arraysize]
這樣每次程式執行時只需改變巨集就可以方便的改變陣列的大小2、動態生成
int n;
cin>>n;
int *array=new int[n];
這樣就可以使用了
3、使用stl中的vector,vector就相當於一個動態的陣列,可以隨時動態地增加大小,非常方便
在 c++中如何將陣列型別和長度作為引數傳入
15樓:匿名使用者
陣列型別可以自定義巨集
比如 int 定義成 1,char 定義成 2#define typeint 1
長度,是多少就傳多少唄。。
ps:完全不理解你為什麼要把陣列型別和長度傳成引數幹嘛用
16樓:匿名使用者
function (t t, int length)
給陣列賦值的時候就可計算出陣列的長度.
17樓:大衍之
你要實現什麼功能,如果說僅僅作為引數傳入的話,可以隨便寫了
諸如int function(int flag,int length)
C中的元素型別(關於陣列)
可以這樣實現 object arr new object 2 將object看做一個二維陣列,因為它的元素是object型別,可以儲存陣列 arr 0 new float 10 第一個元素儲存一個float陣列,其他型別同理 arr 1 new int 5 float arr 0 0 1.0f 還原...
如何在c c 中陣列的下標使用變數
扈懷煒 宣告陣列時不能使用變數座位下標,在引用陣列元素時可以使用變數,如上所示. 對於ansi 標準c及c 這都是標準沒有定義的,也就是說,最好認為不可以用變數代入陣列個數 c99標準中加入了這個特性,但c99標準還未流行。對於c 編譯器,gcc擴充了這個功能,但是它未被標準支援所以這樣的程式是不具...
C 中如何在二維陣列中查詢某個值
折柳成萌 思路 先定義一個字元陣列,接著輸入字串賦值,輸入需要查詢的字元,遍歷字元陣列,查詢輸入的字元,如果找到停止遍歷輸出位置,如果遍歷結束還沒找到,輸出沒有找到。參考 參考 includeusing namespace std int main if i strlen ch cout 沒有找到!...