c语言数组元素的引用
① C语言问题,对C数组元素正确引用的是
解:
int c[4][5],(*cp)[5];
cp=c;
这里cp是二维数组c的首地址 cp本身也是二维数组
正确的是:C
*(*cp+2) *cp是cp[0][0]的地址 *cp+2就是cp[2][0]的地址
*(*cp+2) 就是cp[2][0]的值
其余的引用都是引用的地址
要想引用二维数组的元素值 必须使用两个**
希望能帮助你哈
② 在C语言中,怎样引用数组中所有的元素啊
要引用数组宏的每个元素做些计算,可以将数组及数组的长度作为参数同时传递内给调用函数就可以实现了,比如容:
#include<stdio.h>
int sum(int a[], int size)
{
int i, result = 0;
for (i = 0; i < size; i++) {
result += a[i];
}
return result;
}
main() {
int a[8];
int s,i;
for (i = 0; i < 8; i++) {
scanf("%d", &a[i]);
}
s = sum(a, 8);
printf("%d", s);
}
③ C语言用指针引用数组元素
(*p)[3]是定义一个指向一维数组的指针,数组元素为三。也就是说p指向的其实是a[0],a[1],a[2]这样的形式。
p=a;其实就是把第0行的首地址赋值给p.
所以答案C中p[1]即是把第1行的首地址给p,在此基础上向后移一位,取出地址中的元素数值。 *(p[1]+1)相当于a[1][1].所以是对的。
B的形式是对的,但是它相当于a[2][1],超出界限所以为错。剩下的两个格式就不对。
④ c语言中怎样引用数组
应该是c吧。原因是:
你应该把数组的声明和引用分开,声明的时候〔〕里边放的是专元素的个属数,比如int a[3][4]就说明是3行4列。
引用的时候〔〕里的数的意义就不一样了,是索引。而且你应该格外注意的是,c语言的索引是从0开始的。举个简单的例子吧。
int a[3][2];这个2*3的二维数组。他的索引和排列应该是
a[0][0],a[0][1]
a[1][0],a[1][1]
a[2][0],a[2][1]
看到了吧,索引比声明的时候要小1。
⑤ C语言题:关于如何引用数组中的元素问题
#include<stdio.h>
main(){
int i,j,k,max_index,n;
struct student{int number;char name[20];int score[3];int sum;}stu[10];
scanf("%d",&n);
for (i=0;i<n;i++){
scanf("%d %s %d %d %d",&stu[i].number,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
}
max_index = 0;
for (i=0;i<n;i++) if (stu[i].sum > stu[max_index].sum) max_index = i;
printf("%s %d\n",stu[max_index].name,stu[max_index].sum);
return 0;
}
⑥ C语言问题, 数组元素的引用;程序如下;
for
(i=9;
i>=0;i--)
a[i]=i;
printf
("%d",a[i]);
这里的for只管得了a[i]=i;这一行,而此时i应该等于-1,printf
("%d",a[i]);即打印a[-1]的值,无版意义,因此出错
修改为权
for
(i=9;
i>=0;i--)
{
a[i]=i;
printf
("%d",a[i]);
}
⑦ C语言数组引用
1 定义时不能用变量。如下面是错误的。
int i=10;
int a[i]; //定义时用就是,这个是错误的。
2 你的程序是正确的。访问数组元素时,可以用变量。
⑧ 试题,C语言中数组元素引用的方法有哪三种
一般就两种
一个是直接调用
也就是下标方式
比如a[i]
另一种是指针方式
比如
*(a+i)
和a[i]等价。
如果一定要说第三种
那就是很少用的i[a];
编译是可以过的,但实际上 没人这么写。
⑨ C语言数组的引用
A 拿到的是数组元素的地址,是取地址,但是题目要求是对数组元素的引用,是需要数组元素的值。
⑩ C语言数组元素引用
答案选D,越界啦!
p是指针变量,a是数组名,也是指针常量,因为p=a,所以p-a=0。举个例子吧:若p=&a[1]的话,则p-a=1,自己体会一下,应该能够明白!