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,自己體會一下,應該能夠明白!