c语言如何取数组元素个数?

Python017

c语言如何取数组元素个数?,第1张

1、C语言中,定义数组后可以用sizeof命令获得数组的长度(即可容纳元素个数)。但是通过传递数组名参数到子函数中,以获得数组长度是不可行的,因为在子函数当中,数组名会退化为一个指针。

2、例如:

int data[4],length

length=sizeof(data)/sizeof(data[0])  //数组占内存总空间除以单个元素占内存空间大小,即等于元素个数

printf("length of data[4]=%d", length ) //输出length of data[4]=4

首先

int

n[9]是定义一个元素个数为9个的数组,n[0]---n[8],并不是10个元素。题意要求从编号为1开始输出,从n[1]到n[8]整好8个数,如果定义成n[8],只能只能保证前七个数正确,即n[1]—n[7].

但在这里for(i=1i<9i++)printf("%d

",n[i])最后一个n[8]根本不在你定义的数组n[8]里,数组n[8]是从n[0]—n[7]!!所以你输出的n[8]是一个随机的数。

C语言中,数组是一组连续的相同类型的数据集合。 所以要在数组中插入元素,需要按照以下步骤:

1、找到插入点;

2、将插入点所在元素,及之后的所有元素,都向后移动一个单位;

3、将插入点赋值为要插入的元素。

以固定位置插入,代码举例如下:

#include <stdio.h>

void insert(int *a, int n, int i, int v)

//将长度为n的数组a, 下标为i的位置插入值为v的元素。 插入后,数组长度为n+1.

{

    int j

    for(j = n-1 j>=i j --)//将i及以后的后移一位。 由于是固定位置插入,所以不需要查找插入位置。 

        a[j+1] = a[j]

    a[i] = v//插入元素。 

}

int main()

{

    int a[5] = {1,3,6,7}/五个元素数组,初始化四个值。

    int i

    

    insert(a, 4, 2, 5)//将5插入到a[2]位置。 

    for(i = 0 i < 5 i ++)

        printf("%d ", a[i])//输出结果,为1 3 5 6 7 

    return 0

}