设数组a,具有相同类型的指针变量p与数组a

文章 3年前 (2021) admin
0

Q1:若有数组定义为int a[10],i为已初始化的整型,那么与a[i]=100等价的赋值表达式是 A:a+i=100 B:*(a+i)=100

选B

Q2:初始化了一个数组int a[10]

Q3:C语言中定义数组时对其全部初始化为1的问题

这写得不对。用C标准这样写只会初始化第一个元素,然后是默认值0。gcc编译器支持更灵活的C语言数组初始化方法:int a[10]={ [0.9]=1,};注意其他编译器不一定支持,包括gcc编译C代码,但是只有gcc编译C语言支持。

Q4:若有定义int a[10],执行语句a++之后,a指向数组元素a[1]对吗?

若有定义int a[10],是不能够执行语句a++的。因为这里的a是一个数组名,也就是一个地址常量,它是不可以进行自增、自减操作,或其它形式的重新赋值的。

Q5:数组问题若有说明int a[10],则对a数组元素的正确引用的是()。

正确引用的是a[10-10]。a数组中包含有10个元素,并为这10个元素分配内存空间。数组元素的一般形式为:数组名[下标] 。其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。总之数值在0到9之间,超过此范围则有误。#include int main(){int a[10]={1,2,3,4,5,6,7,8,9,10};for(int i=0;i<10;i++)printf("a[%d]=%d\n",i,a[i]); return 0;}扩展资料:数组作为函数形参传递时,实际上是传递了数组首元素指针的一个副本,因为不能用一个数组初始化另外一个数组,所以数组作为形参时,函数是不知道这个数组的元素个数,只知道数组地址。例如void test(int* a),编译器只知道a是指针,不知道a指向多少个元素,甚至根本不知道a是一个数组,有两种方法:第一,增加一个参数表示元素个数,void test(int* a, int n)第二,传递数组的引用void test(int (&a)[5]),调用的时候必须要传递一个元素有5个的数。参考资料来源:百度百科-数组

Q6:若有定义:int a[10],则对数组a元素的正确引用是?

d .a数组包含10个元素,并且为这10个元素分配了内存空间。数组元素的一般形式是:数组名[下标]。的下标只能是整数常量或整数表达式。如果是小数,C编译会自动四舍五入。比如A [5]、A [I J]和A [I ]都是合法的数组元素。数组元素通常也被称为下标变量。简而言之,该值介于0和9之间,如果超过该范围,则是错误的。扩展数据:C/C中的数组名会退化为指针,所以数组名A实际上是指数组第一个元素的地址。作为指针,数组名是特殊的。它在它指向的内存区域。A的值和A的值相同(可以输出观察),但类型和意义不同。指针的加法运算与它们所指向的数据类型密切相关。例如:int a[10];a相当于int *,加上1(a ^ 1)就相当于1 * sizeof(int)。但是,a的类型相当于int **,也就是所谓的指向数组的指针和数组元素类型的辅助指针。给它加1相当于1 * sizeof(a),所以它会偏移一个数组长度。参考来源:百度百科-数组。

版权声明:admin 发表于 2021年10月26日 上午2:23。
转载请注明:设数组a,具有相同类型的指针变量p与数组a | 热豆腐网址之家

相关文章