有下面一段程序:
include<stdio.h>
main()
{
int**k,*j,i=100;
j=&i;k=&j;
printf("%d\n",**k);
}
以上程序的输出结果是
A:i的地址
B:100
答案是B,可我觉得是A,我是这么想的:j=&i就是说j指向i的地址,k=&j表示k指向j的地址,这两句的意思是k指向i的地址,*k表示指针k的值,**k则表示k的地址,k的地址指向i.所以我觉得A对,可答案是B,我错在哪里?
设有以下语句,其中不是对a数组元素正确引用的是(其中0<<i<10)
int a=[10]={1,2,3,4,5,6,7,8,9],*p=a
Aa[p-a]
B(&a[i])
Cp[i]
D*(*(a+i))
答案是D,我觉得B也不是正确的引用,因为(&a[i])取的是a[i]的地址,而不是取值,我记得*是取值,&是取地址,不知道我又错在哪里?
[此贴子已经被作者于2006-8-18 20:44:46编辑过]