當前位置:首頁 » 編程語言 » c語言元素個數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言元素個數

發布時間: 2022-05-03 13:42:04

c語言,定義了個數的數組元素個數問題,不懂得不要來亂答。

答案是13。一般問數組元素的個數是指有效元素的個數,等於strlen(str),雖然後面的''占據一個元素的空間,但是是不屬於有效長度的。

如果是問數組的長度,就是20,這個和分配的空間大小有關。

或者題主可以參考官方的關於strlen函數的表述:

網頁鏈接

❷ C語言數組元素個數

有m列,每行就是m個
a[i][j]之前共有i行。這部分就是i*m個
當前行,在a[i][j]之前的,有j個
於是,總個數就是
i*m+j
選B

❸ c語言 輸出數組中元素個數

主要有兩個地方錯誤,我已經改好了,改動的地方做了注釋
int strlen(char s[]);
void main()
{ int j;
char s[5]={'1','2','3','4','\0'}; /*把字元依次賦值給數組中的每個元素,數組並不會自動在末尾加上'\0',所以要手動加上'\0'。如果想讓其自動加上'\0',可以使用這種語句:char s[]="1234";*/
j=strlen(s); /*數組做實參時只要寫數組名就行了*/

printf("%d",j);
getch();
}
int strlen(char s[])
{
int i=0;
while(s[i]!='\0')
i++;
return i;
}

❹ C語言怎麼用變數定義來數組元素個數

C語言中數組的維數表示數組中元素的個數,在常規數組中維數是必須要指明的,如果沒有指明,則必須在初始化列表中給定初始值,編譯器通過初始化列表來確定數組的維數。

int a[] = {1,2,3,4};

上面的代碼雖然沒有指明數組的維數,但是編譯知道數組a的維數是4(只有4個元素)。


要實現用變數定義數組的元素個數即維數,可以使用malloc()和free()來進行動態內存分配 。下面是一個使用動態內存的示例:

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#include<string.h>
intmain()
{
intsize;
printf("輸入建立元素的個數:");
scanf("%d",&size);
int*p=(int*)malloc(sizeof(int)*size);
if(p==0){
printf("不能分配內存 ");
return0;
}

//初始化內存
memset(p,0x00,sizeof(int)*size);
//釋放內存
free(p);
return0;
}

❺ C語言關於字元串長度和元素個數的問題

首先,雙引號」 「表示內容為字元串,所以"Beijing「是字元串,而字元串後面會自動地跟上一個'\0'作為結束符,所以,當你將」Beijing「賦值給s[20]或者說s[]的時候,'\0'也跟著被賦值進去了。
而單引號『 』 則表示內容為字元,所以當你把'B『,'E','I','J','I','N','G'這樣賦值給字元串s[]時,字元』\0『是不會被賦值進s[]中的。
明白了上面所說的,那麼就不難立即下面的結果了
1. char s[20]="Beijing" --------長度為7,數組個數為20,數組元素個數為8
2. char s[]="Beijing「 --------長度為7,數組大小為8,數組元素個數為8
3. s[]={'B『,'E','I','J','I','N','G'} *------則因為後面不存在'\0',所以如果你輸出printf("%s \n",s);這樣輸出的話,輸出 BEIJING的後面還會有亂碼存在,系統沒有在BEIJING的後面發現'\0',認為字元串尚未結束,繼續輸出後面的內容,但是系統在後面沒有分配char類型的地址內容,所以在輸出後面亂碼後,認為不再是字元串,就結束了字元串輸出。因此,一般本人不建議這樣定義字元串。建議使用第1,2種定義方法,或者根據需要 用 malloc() 方法 動態分配地址,使用指針進行賦值。

至於為什麼你的那個指針p,這里,p是指向s數組的首地址的,所以,這里p的字元串長度應該是與s的字元串是相等的,也就是7。

❻ C語言數組元素的個數問題

首先
int
n[9]是定義一個元素個數為9個的數組,n[0]---n[8],並不是10個元素。題意要求從編號為1開始輸出,從n[1]到n[8]整好8個數,如果定義成n[8],只能只能保證前七個數正確,即n[1]—n[7].
但在這里for(i=1;i<9;i++)printf("%d
",n[i]);最後一個n[8]根本不在你定義的數組n[8]里,數組n[8]是從n[0]—n[7]!!所以你輸出的n[8]是一個隨機的數。

❼ 請問在C語言中如何獲取一個數組里存在多少個元素

有一個函數就是為了獲取數組元素個數的:sizeof!
原理是:sizeof獲取數組的長度然後除以數據類型所佔的長度得到元素個數
我簡單寫下代碼:
int a[100]={1,2,3,4}; int len=sizeof(a)/sizeof(int); printf("%d\n",len);
以上為原來的回答,有錯誤:
在給定數組大小時候sizeof這個方法就不起作用了,我當時沒注意犯了錯誤有些誤人子弟了
原諒我一年以後才來修改這個答案~
我想了想int數組默認全是0稱為初始化,姑且說非0為有效元素
while(i<100)
{
if(a[i]!=0)
count++;
i++;
}
遍歷,記錄
字元數組有結束符,只要找到結束符的位置就可以了

❽ C語言如何檢查一個數組中元素的個數

對於字元數組str[N],判斷方法有以下三種:

第一種:用庫函數strlen
len = strlen(str); // 數組長度
第二種:利用計數器
int i=0;
while(str[i++] != '\0'); // 數組str的長度為i
第三種:利用sizeof函數
len = sizeof(str)/sizeof(str[0]); // 數組長度對於其他類型的數組,都可以用字元數組的第三種方法,第三種方法是通用的。

❾ C語言數組指針的元素個數怎麼定義,為什麼是4

int (*p)[4]是將p定義成了數組指針(即指向一維數組的指針)。
既然要指向一維數組,就得知道可以指向的一維數組的大小,[]中就是指定可以指向的一維數組的大小的。
而這里4說明只能用p指向具有4個int元素的一維數組。
當然用p指向列大小為4的二維數組的某一行也是可以的,就像圖中一樣。
下面給個例子:
int a[4]={1,2,3,4};
int b[2][4]={5,6,7,8,9,10,11,12};
int (*p)[4];
//下面都可以
p=&a;
p=b;
p=b+1;