A. c語言字元串數組所佔內存長度
sizeof(a[5])是數組中第6個元素的長度,應該是1。但是你的數組長度為5,最後一個元素是a[4]哦!
要求整個數組的長度直接用數組名就好了,相當於直接把數組的首地址傳給函數strlen,
strlen(a)就是求得的整個數組佔用的位元組長度,而且應該為5而不是7。因為每個char類型的變數只佔一個位元組!
希望可以幫到你,不會的可以問我。希望採納嘿嘿
B. c語言數組最大長度
理論上,c語言數組最大的大小沒有限制,因為它用的是 虛擬存儲。
對於寫程序而言,例如要寫下標,那麼受 unsigned int 最大值的限制,只能用到十六進制 0xffffffff, 十進制4G多一點。
具體程序能獲取多大,就很難說,有時編譯可以通過,運行時出錯。你也可以用 malloc 動態分配請求,看分配是否成功或失敗。
對一般程序而言,數組長度通常夠用了。
C. C語言中如何計算一個數組占內存多少空間
C語言中數組的sizeof值等於數組所佔用的內存位元組數。
C語言中有一個專門用於檢測類型或變數或數組在內存中所佔有的空間(位元組數)的操作符sizeof,用sizeof可以直接檢測出數組在內存佔有的位元組數。
語法規則是:sizeof(x); (識別沒有歧義時也可寫成sizeof x;)——其中x是類型名、變數名或數組名等,返回x所佔位元組數(int型)。
(3)c中數組的存儲長度擴展閱讀:
sizeof的使用規則:
1、基本數據類型的sizeof:
這里的基本數據類型指short、int、long、float、double這樣的簡單內置數據類型,由於它們都是和系統相關的,所以在不同的系統下取值可能不同,這務必引起我們的注意,盡量不要在這方面給自己程序的移植造成麻煩。一般的,在32位編譯環境中,sizeof(int)的取值為4。
2、指針變數的sizeof:
指針變數的sizeof值與指針所指的對象沒有任何關系,正是由於所有的指針變數所佔內存大小相等,所以MFC消息處理函數使用兩個參數WPARAM、LPARAM就能傳遞各種復雜的消息結構(使用指向結構體的指針)。
D. C語言中關於數組長度
可以使用c本身有的函數啊!!
首先說明一點,關於數組的長度有在定義時給出的長度,但定義時的長度不一定都用完,很可能有好多空間沒有用到,此時就有實際長度的概念;
比如:int s[10];
s[10]={1,2,3,4,5,6};
定義整型數組s的長度是10,但是賦初始值時只賦了6個,那麼6就是數組的實際長度!!
關於整型數組實際長度的求法,可以在輸入的時候就設置計數器變數,每輸入一個數就自動加一。
關於字元數組也有定義時的長度和實際長度;我們很多時候用到的就是實際長度:其求法可以用strlen()函數求道;
比如:char s[60];
cin>>s;
cout<<strlen(s);
就可以啦!!
假如輸入的是:abcdefghj
輸入個數:9
E. c語言數組長度
長度為2;
字元串是以\0作為結束標志地
ab\0123\\098
中的ab後面有\0,所以數組a的內容是:ab。
F. C語言中如何計算一個數組占內存多少空間
如果一個數組的長度是n(即有n個元素),元素的類型是XXX,則n*sizeof(XXX)就是這個數組所佔內存空間的位元組數。
G. c語言求數組長度strlen
strlen 用於計算字元串的長度。
數組長度,應是指數組大小,可存放幾個數組元素。
下面例子 計算 float 數組a, char 數組s 的 數組長度,計算s 里字元串長度。
(sizeof 用來計算 變數 和 類型 占內存的大小,單位是位元組。)
#include <stdio.h>
int main(){
float a[5];
char s[20]="abc123";
int nf,ns,ms;
nf = sizeof(a)/sizeof(float);
ns = sizeof(s)/sizeof(char);
ms = strlen(s);
printf("number of element in a is %d\n", nf);
printf("number of element in s is %d\n", ns);
printf("s string length is %d\n",ms);
return 0;
}
輸出:
number of element in a is 5
number of element in s is 20
s string length is 6
H. C語言中計算數組長度的方法是什麼
用 sizeof 可以獲得數據類型或變數在內存中所佔的位元組數。同樣,用 sizeof 也可以獲得整個數組在內存中所佔的位元組數。因為數組中每個元素的類型都是一樣的,在內存中所佔的位元組數都是相同的,所以總的位元組數除以一個元素所佔的位元組數就是數組的長度。
比較特別的是,比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補0)位移。例如,將11100011右移3比特,算術右移後成為11111100,邏輯右移則為00011100。
運算符的優先順序從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。
C語言特點:
其一,廣泛性。C語言的運算范圍的大小直接決定了其優劣性。C語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。
其二,簡潔性。9類控制語句和32個關鍵字是C語言所具有的基礎特性,使得其在計算機應用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時還能夠支持高級編程,避免了語言切換的繁瑣。
I. C/C++中如何獲取數組的長度
以下是兩個Demo程序,一個C語言的,一個C++的:P.S:若數組為存儲 字元串的字元數組,則所求得的長度還需要減一,即對於宏定義: #define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]) - 1 );} ,對於函數定義:template <class T>int getArrayLen(T& array){return (sizeof(array) / sizeof(array[0]) - 1);}原因為存儲字元串的字 符數組末尾有一個'\0'字元,需要去掉它。【C語言】#include <stdio.h>#include <stdlib.h>#define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));}//定義一個帶參數的 宏,將數組長度存儲在變數len中int main(){char a[] = {'1','2','3','4'};int len;GET_ARRAY_LEN(a,len)//調用預定義的宏,取得數組a的長度,並將其存儲在變數len中printf("%d\n",len);system("pause");return 0;}【C++】#include <iostream>using namespace std;template <class T>int getArrayLen(T& array){//使用模板定義一 個函數getArrayLen,該函數將返回數組array的長度return (sizeof(array) / sizeof(array[0]));}int main(){char a[] = {'1','2','3'};cout << getArrayLen(a) << endl;return 0;}
J. C語言中定義數組str[ ]="desktop",那這個數組長度是多少
c語言中,str[]="desktop",將會給字元串分配8個空間(包含最後那個'\0')。
需要知道的是,char s聲明一個字元;char st[10]聲明一個最多存放十個字元的字元數組,他可以存放1至10個字元,也可以存放1至9個字元並在後面加一個零,當後面加一個零時,就可以稱之為字元串數組,或者簡稱字元串。而字元串的長度是不包含後面那個零的。
題目中這種定義方式,系統會自動在後面加上一個零,所以它定義的是字元串數組,可以把它簡稱為字元串,但是若把它叫做數組,會引起些誤會。
所以你這個題目中,這個數組的長度是多少?是能引起歧義的。應該問,這個字元串的長度是多少?那麼肯定就是7了。
有什麼問題請留言。