c语言中inta[3]的值是怎么得到的?

作者&投稿:纪卢 (若有异议请与网页底部的电邮联系)

若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是3。

int a[][]:第一个中括号表示有此二维数组有几行,第二个表示有几列。

故int a[][3]={1,2,3,4,5,6,7};说明此数组有n行,3列;也就是说每行有三个元素,所以第一行有1,2,3 这三个元素,第二行有4,5,6三个元素,第三行有7这个元素,不足的两个元素由0来补足。

对数组进行初始化,要么两个维度都不写,由赋值的数组确定,或者第二维可以不写,第一维要写,再由赋值数组确定。

数组中的下标是从 0 开始的(而不是 1)。那么,如何通过下标表示每个数组元素的呢?通过“数组名[下标]”的方式。例如“int a[5];”表示定义了有 5 个元素的数组 a,这 5 个元素分别为 a[0]、a[1]、a[2]、a[3]、a[4]。其中 a[0]、a[1]、a[2]、a[3]、a[4] 分别表示这 5 个元素的变量名。

如果从 1 开始,那么数组的第 5 个元素就是 a[5],而定义数组时是 int a[5],两个都是 a[5] 就容易产生混淆。而下标从 0 开始就不存在这个问题了!所以定义一个数组 a[n],那么这个数组中元素最大的下标是 n–1;而元素 a[i] 表示数组 a 中第 i+1 个元素。

另外,方括号中的常量表达式可以是“数字常量表达式”,也可以是“符号常量表达式”。但不管是什么表达式,必须是常量,绝对不能是变量。

C 语言不允许对数组的长度进行动态定义,换句话说,数组的大小不依赖程序运行过程中变量的值。非通常的情况为动态内存分配,此种情况下数组的长度就可以动态定义。

扩展资料:

数组特点

1、数组是相同数据类型的元素的集合。

2、数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。

3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

参考资料来源:百度百科-数组



可以定义整型数组的时候每个元素都赋值,这样每个元素的值都是明确的

~

C++中inta[]={1,2,3,4}是什么意思?
答:C语言中数组的维数表示数组中元素的个数,在常规数组中维数是必须要指明的,如果没有指明,则必须在初始化列表中给定初始值,编译器通过初始化列表来确定数组的维数。int a[] = {1,2,3,4};上面的代码虽然没有指明数组的维数,但是编译知道数组a的维数是4(只有4个元素)。要实现用变量定义数组的...

为何c中inta=3;不等同于stringa=3;?
答:其他情况见到的都会为变量分配实际的存储空间的,常见的就是 int num; float b[3];这种形式了。既然要为变量分配存储空间,自然的事情是编译器需要知道这个变量的大小了,它到底占几个字节,如果一个变量的大小是不确定的,自然编译器不知道该为它分配多少存储空间了,这样在编译器会报告语言错误的。因...

为什么inta[5][3]={1,2,3,4};
答:a[][3]是一个二维数组(实质是一个数组,数组的每个元素都是由3个整数构成的数组),而且C语言中的任何数组在内存中都是线性分布的,这里的a也是。所以说a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2]6个元素依次被赋值为1,2,3,4,5,6。并且C编译器根据后面的...

定义一个二维数组有三行四列inta【3】【4】教材上说在这个二维数组中a...
答:int a[3][4]={11,12,13,14,21,22,23,24,31,32,33,34};int *p=&a[0][0]; // 声明 指针 int *p, 初始化,让它 指向 a[0][0] 的地址 &a[0][0]printf("%d %d\n",*p,p[0]);return 0;} 打印 语句 里, *p 是 p 指向的那个地址里存放的数的数值。现在指向a[0]...

有符号和无符号字符型变量的取值范围是否是编码的范围?
答:例如,初始化变量inta=-3;其实它等价于signedinta=-3;关键字signed在这里可以省略,因为C语言默认就是有符号类型的,如果要定义无符号类型的数(也就是0和正整数)可以这样定义,unsignedintb=5;为了说明清楚signed和unsigned的区别,首先需要了解数据在内存中是如何存储的,在计算机中所有的数据都...

inta=3;++ a- a* a;结果是几?
答:赋值语句,从右到左依次运行:那么:int a=3;a+=a-=a*a;相当于:1.a-=a*a;2.a+=a;然后相当于:1.a=a-a*a;2.a=a+a;由于a初始化为3:1.a=a-a*a=3-3*3=-6;2.a=a+a=-6+(-6)==-12;所以最后结果就是-12

inta[3][2]={1,2,3,4}正确吗?
答:B。int a[3][2]={1, 2, 3, 4, 5, 6};定义a为3*2(3行2列)的数组,有6个元素。该数组的下标变量共有3×2个,即:a[0][0],a[0][1]a[1][0],a[1][1]a[2][0],a[2][1]数组中的每个元素都由元素名以[i,j]的形式标识,其中a是数组名,i和j是唯一标识a中每个...

inta[]={1,2,3};
答:数组定义为int a[2]3]={1,2,3,4,5,6},数组元素a[2][1]的值为6。数组元素作为组成数组的基本单元,数组元素变量, 其标识方法为数组名后跟一个下标。下标表示了元素在数组中的顺序号。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量,而不...

设有语句int a=3; 则执行了语句a-=a+=a*a;后,变量a的值是( )
答:设有语句int a=3;则执行了语句a-=a+=a*a;后,变量a的值是-12。先算a*a=9 再算a-=9 这样a=-6 再算a+=-6 就是a=-6-6=-12 任何一个表达式的最后加一个分号都可以成为一个语句。一个语句必须在最后出现分号。表达式能构成语句是C和C++语言的一个重要特色。C++程序中大多数语句是...

c语言数组的赋值
答:C语言对数组的初始化赋值还有以下几点规定:1) 可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只 给前面部分元素赋值。例如:int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。2) 只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部...