不是inta[] 而是例如int a[10]这种。括号内一定要有个常量数字。
我们可以这样定义
#define N 5
int a[N]
这表明了数组名为a;数组有5个元素;分别是a[0]到a[4];
对于数组来说;数组是变量的集合,因此数组也具有与变量相同的数据类型和储存类型。数组的类型就是它所有的变量的类型。在定义数组时,应在数组名前对数组的类型加以确定。如上面的int a[10];则表明了数组内元素均为整形。
所有当表示浮点型可以定义为例如float a[10]。 举例如下:
数组名是由用户命名的C语言标识符,要遵循标识符命名规则。数组名表示数组存储区域的首地址。数组的首地址也就是第一个元素的地址。数组名是一个地址常量,不能对它赋值。
在C语言中,数组的初始化有以下几种方式:
1、定义的时候同时初始化:
int array[10] = {1,2,3,4,5};
2、定义的时候不指定数组大小,由初始化的数组元素来确定大小:
int array[] = {1,2,3,4,5};
3、先定义变量,然后初始化.注意点:定义变量时必须制定数组的大小.此时只能对数组变量成员元素逐一赋值,不能批量赋值.
// int array[]; //错误用法
int array[12];
// array = {1, 2, 3}; //错误用法.
array[0] = 1;
array[1] = 2;
array[2] = 3;
4、只有一种情况,在作为方法的形式参数时,可以不指定数组的大小.这时传入方法的是数组的首地址,所以在方法内部是无法得到数组长度的,数组长度必须作为参数传入函数.
void test()
{
int array[] = {1,2,3,4,5};
int length = sizeof(array)/sizeof(int);
int result = sumOfArray(array, length);
printf("%d",result);
}
int sumOfArray(int array[], int length)
{
int result = 0;
for (int i=0; i<length; i++)
{
result += array[i];
}
return result;
}
扩展资料
C语言数组构建:
1、遵循原则
申请的时候从外层往里层,逐层申请;
释放的时候从里层往外层,逐层释放。
2、构建所需指针
对于构建一维动态数组,需要一维指针;
对于二维,则需要一维,二维指针;
三维需要一,二,三维指针;
依此类推。
参考资料
一般对数组初始化可以用以下方法实现:
(1)在定义数组时对数组元素赋以初值。如:
static int a[10]={0,1,2,3,4,5,6,7,8,9};经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9。
(2)初始化时可以只对一部分元素赋初值。例如:
static int a[10]={0,1,2,3,4};定义的数组有10个元素,但只对其中前5个元素赋了初值,后5个元素初值为0。
(3)如果想使一个数组的元素值全部为0,可以用下面的方法:
static int a[10]={0,0,0,0,0,0,0,0,0,0};不能用:
static int a[10]={0*10};如果对static型数组不赋初值,系统会对定义的所有数组元素自动赋以0值。
(4)在对全部数组元素赋初值时,可以不指定数组长度。
C语言数组的初始化表示方法有4种,分别是:
1、定义的同时进行初始化,我们同样用数组的初始化引出结构体的初始化,我们知道数组在定义的同时进行初始化的代码如下:
int nums[] = {1, 3, 5};
由此可推出结构体在定义的同时进行初始化的代码如下:
struct Person p = {"lee", 23, 1.8};
2、先定义再进行初始化,这种初始化方法其实昨天的内容里已经写过了,代码如下:
struct Person p;
p.name = "lee";
p.age = 23;
p.height = 1.8;
我们知道数据定义好后就不能对其进行一次性初始化了,比如如下代码是编译不通过的。
int nums[3];
num = {1, 2, 3}
3、第三种结构体比较例外,它可以这样做,只不过需要对其进行一下强制类型转换,代码如下:
struct Person p;
p = (struct Person){"xq, 8, 8.8}
4、指定将数据赋值给指定的属性,数组中我们见过这种写法,代码如下:
int nums[3] = {[0] = 2, [2] = 1, [1] = 2};
我们可以为不同的索引指定值,并不需要一定要按顺序来,所以数组可以,结构体是否可以呢,当然,代码如下:
struct Person p = {.height = 1.8, .name = "lee", .age = 23};
c语言数组的初始化表示方法
一、静态初始化 在C语言中,可以在声明数组的同时进行初始化,称为静态初始化。例如:c int array[5] = {1, 2, 3, 4, 5};这里声明了一个整型数组`array`,并初始化为五个值。数组的大小由声明的数值决定,初始化列表中的值按顺序分配给数组的每一个元素。二、部分初始化 如果知道数组的部分...
在C语言中数组的初始化是如何定义的?
如果初始化的个数多于元素个数,将产生编译错误;如果少于元素个数,其余的元素被初始化为0。如果维数表达式为空时,那么将用初始化值的个数来隐式地指定数组元素的个数,如下所式:nt array[]={1,2,3,4,5};这也表明数组 array元素个数为5。main()} int i,array[]={1,3,5,7,9,11}; ...
C语言数组的初始化表示方法
1、定义的同时进行初始化,我们同样用数组的初始化引出结构体的初始化,我们知道数组在定义的同时进行初始化的代码如下:int nums[] = {1, 3, 5};由此可推出结构体在定义的同时进行初始化的代码如下:struct Person p = {"lee", 23, 1.8};2、先定义再进行初始化,这种初始化方法其实昨天的内...
c语言中数组的初始化
arr[i]=0;//ThiswillmakeallZERO 方法四、1、全局变量和静态变量初始化时会自动被设置为0。如果们声明全局变量,那么在运行前会变成全0。intarr[1024];//Thisisglobal intmain(void){ //statements } 2、对于局部数组简写的初始化语法。如果一个数组被部分初始化,没有被初始化的元...
C语言数组的初始化表示方法
define N 5 int a[N]这表明了数组名为a;数组有5个元素;分别是a[0]到a[4];对于数组来说;数组是变量的集合,因此数组也具有与变量相同的数据类型和储存类型。数组的类型就是它所有的变量的类型。在定义数组时,应在数组名前对数组的类型加以确定。如上面的int a[10];则表明了数组内元素均为...
C语言数组的初始化表示方法
C语言中,数组的初始化方式多种多样,主要通过大括号来实现。例如,像这样:int a[]={1,2,3}; 这表明数组a被初始化为包含三个元素,每个元素的值分别为1、2和3,相当于等同于int a[3]={1,2,3}。当你使用int a[3]={0};,则会将数组a的所有元素设置为0,初始化得非常明确。然而,有...
c语言数组初始化的正确格式是什么?
选D。数组初始化:a[数组元素个数]={各元素的值用,连接} A 写成括号不对 B {}中没写值,不对 C 正确,数组直接赋初值可以不标数组元素个数,会根据后面赋值个数自动分配空间 D 正确,但要注意这样写只是给a[0]赋值10,其余的9个赋值为0,而不是将十个都赋值成1。
c语言中怎么把一维数组初始化为全零啊,不用循环
在C语言中,有多种方法可以快速将一维数组初始化为全零,无需使用循环。以下是三种常见的方法:1. 直接使用花括号初始化:首先,你可以直接在定义数组时指定所有元素为0,如:int arr[10]={0};。这种方法适用于数组的长度已知且希望所有元素均为0的情况。如果仅初始化部分元素,编译器会自动为剩余...
C语言数组初始化的三种方式
在C语言中,数组的初始化有三种常见的方法。首先,使用花括号{0}进行初始化是最直接且简洁的,通常在定义时采用。这种方法适用于希望所有元素默认为0的情况。其次,通过for循环初始化可以为每个元素赋予独立的值,提供了更大的灵活性。最后,memset函数是另一种初始化手段,它接受一个内存区域、一个填充...
【C语言】初始化数组,C语言中初始化特定列表和元素!
int a[ ] = { 1, 2, 4, 8 }; \/\/ 有4个元素的数组 (4) 如果一个数组的定义同时包含了对数组长度指定和初始化列表,那么长度是通过方括号内的表达式指定的。任何元素只要在列表中没有对应的初始化器,就会被初始化为 0(对于指针类型,则初始化为 NULL)。如果列表中所包含初始化器比数组...