1、c語言中,定義數組后可以用sizeof命令獲得數組的長度(可容納元素個數)。
創新互聯建站專注為客戶提供全方位的互聯網綜合服務,包含不限于網站制作、網站建設、許昌網絡推廣、小程序設計、許昌網絡營銷、許昌企業策劃、許昌品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯建站為所有大學生創業者提供許昌建站搭建服務,24小時服務熱線:18980820575,官方網址:vcdvsql.cn
例如:
double a[] = {1,2,3,4};
int length;
length=sizeof(a)/sizeof(a[0]); //數組占內存總空間,除以單個元素占內存空間大小
printf(“length of a=%d”, length ); //輸出length of a=4
2、但是,通過傳遞數組名參數到子函數中,以獲得數組長度是不可行的。
例如:
int getLength(int a[]){
int length;
length=sizeof(a)/sizeof(a[0]); //這樣是錯誤的,得到的結果永遠是1
return length;
}
因為,a是函數參數,到了本函數中,a只是一個指針(地址,系統在本函數運行時,是不知道a所表示的地址有多大的數據存儲空間,這里只是告訴函數:一個數據存儲空間首地址),所以,sizoef(a)的結果是指針變量a占內存的大小,一般在32位機上是4個字節。a[0]是int類型,sizeof(a[0])也是4個字節,所以,結果永遠是1。
3、因此,獲得數組長度,只能在數組定義所在的代碼區中,采用以上方法,才可以達到效果
使用C語言函數strlen()
函數原型:extern unsigned int strlen(char *s);,在Visual C++ 6.0中,原型為size_t strlen( const char *string );,其中size_t實際上是unsigned int,在VC6.0中可以看到這樣的代碼:typedef unsigned int size_t;。
頭文件:string.h
功能:計算字符串s的(unsigned int型)長度
說明:返回s的長度,不包括結束符NULL。
程序舉例:
#include string.h
#includestdio.h
int main(void)
{
char s[]="Golden Global View";
printf("%s has %d chars",s,strlen(s));
return 0;
}
1、在c語言中,可以通過庫函數strlen來計算字符串的長度,也可以通過循環計數來求取字符串長度。
函數原型:unsigned
int
strlen(char
*str);
功
能:統計字符串str中字符的個數,不包含'\0'
返
回
值:返回字符個數
2、用strlen函數實現:
char str[20];
int len; // 保存數組的長度
scanf("%s", str);
len = strlen(str); // 計算字符數組str的長度
注:需將頭文件#include
添加進源文件中。3、用循環來實現:
char str[20];
int len=0; // 保存數組的長度
scanf("%s", str);
while(str[len] != '\0') // 未檢測到結束字符
{
len++; // 統計字符數組str的長度
}
用 sizeof 可以獲得數據類型或變量在內存中所占的字節數。同樣,用 sizeof 也可以獲得整個數組在內存中所占的字節數。因為數組中每個元素的類型都是一樣的,在內存中所占的字節數都是相同的,所以總的字節數除以一個元素所占的字節數就是數組的長度。
比較特別的是,比特右移()運算符可以是算術(左端補最高有效位)或是邏輯(左端補0)位移。例如,將11100011右移3比特,算術右移后成為11111100,邏輯右移則為00011100。
運算符的優先級從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。
C語言特點:
其一,廣泛性。C語言的運算范圍的大小直接決定了其優劣性。C語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。
其二,簡潔性。9類控制語句和32個關鍵字是C語言所具有的基礎特性,使得其在計算機應用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時還能夠支持高級編程,避免了語言切換的繁瑣。
新聞名稱:c語言獲得數組長度函數 c語言中獲取數組長度
文章轉載:http://vcdvsql.cn/article46/ddsighg.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、動態網站、云服務器、靜態網站、微信公眾號、手機網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯