马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Q:经过下列语句:int j,a[10],*p;定义后,
下列语句中合法的是
A. p=p+2;
B.p=a[5];
C.p=a[5]+2;
D.p=&(j+2);
A.#include <stdio.h>
#include <math.h>
int main()
{
int a[10],*p;
printf("a=%d\n", a); //
printf("a[0]=%d\n",a[0]);//
printf("a[10]=%d\n", a[10]);//
printf("p=%d\n", p); //
printf("*p=%d\n", *p); //
p=p+2;
printf("a=%d\n", a); //
printf("a[0]=%d\n",a[0]);//
printf("a[10]=%d\n", a[10]);//
printf("p=%d\n", p); //
printf("*p=%d\n", *p); //
return 0;
}
为什么运行结果只有4行?
a=6487536
a[0]=1
a[10]=1
p=1
B.
p=a[5];
[Error] invalid conversion from 'int' to 'int*' [-fpermissive]
[错误]从“int”到“int*”的转换无效[-fpermissive]
C.
p=a[5]+2;
[Error] invalid conversion from 'int' to 'int*' [-fpermissive]
D. p=&(j+2);
[Error] lvalue required as unary '&' operand
[错误]左值需要作为一元'&'操作数
|