C语言数组的初始化表示方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言数组的初始化表示方法相关的知识,希望对你有一定的参考价值。
是不是 int a[]
不是inta[] 而是例如int a[10]这种。括号内一定要有个常量数字。
我们可以这样定义
#define N 5
int a[N]
这表明了数组名为a;数组有5个元素;分别是a[0]到a[4];
对于数组来说;数组是变量的集合,因此数组也具有与变量相同的数据类型和储存类型。数组的类型就是它所有的变量的类型。在定义数组时,应在数组名前对数组的类型加以确定。如上面的int a[10];则表明了数组内元素均为整形。
所有当表示浮点型可以定义为例如float a[10]。 举例如下:
扩展资料
数组名是由用户命名的C语言标识符,要遵循标识符命名规则。数组名表示数组存储区域的首地址。数组的首地址也就是第一个元素的地址。数组名是一个地址常量,不能对它赋值。
数组名后是由方括号括起来的常量表达式,不能使用其他括号
参考技术A在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、构建所需指针
对于构建一维动态数组,需要一维指针;
对于二维,则需要一维,二维指针;
三维需要一,二,三维指针;
依此类推。
参考资料
百度百科-C语言
一般对数组初始化可以用以下方法实现:
(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 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; 参考技术D
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[i]中的元素其实是地址。这种方法对各个元素大小不一样的情况下比较适用。如:假定有若干个不等长字符串需要我们处理,如果使用a [i ][j]结构,则j必须取这些字符串长度的最大值, 显然这种方法浪费空间。
如果采用* a [i ]结构,则由于a中仅保存每个字符串的首地址,而不是串本身,这不仅节约了空间,而且减少了直接对串进行操作的时间。
第四种方式为用指向指针的变量来表示。此种方式p是指向指针的指针,不能把普通的二维数组的首地址(如本例中的a)赋给它。(因为a不是指向指针的指针)。可以把第三种方式中的数组指针的首地址赋给它。这种方式用的较少。 参考技术A c语言如何表示二维数组里面有#:
1先定义常量,常量用#define来定义。
2然后再定义变量。
3接着是定义二维数组, const float rain[YEAR][MONTHS]= 1.2,1.3,4.7,4.8,5.8,4.6,4.7,4.0,5.0,3.8, 3.2,3.1, 1.2,1.3,4.7,4.9,5.8,4.6,6.7,4.0,5.1,3.8, 3.2,3.1 ; 这里使用const 修饰,表示该二维数组是只读模式,不能修改。
4接着对二维数组进行循环,求得这两年的总降水量。
5然后计算平均降水量,公式:年平均将水量=总降水量/总年数;
6将年平均降水量的结果输出。
7在终端运行结果,查看年平均降水量。 参考技术B 对数。c语言是数学文字的字母表达,需要用到对数,因此这句话可以说c语言如何表示二维数组里面有对数,。
以上是关于C语言数组的初始化表示方法的主要内容,如果未能解决你的问题,请参考以下文章