❶ 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;