|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
先放程序,大家可以先复制运行一下:
#include<stdio.h>
void main()
{
int a[10]={9,8,7,6,5,4,3,2,1,0};
int i,j,k,*p;
printf("**********");
for(j=0;j<10;j++)
{
printf("%d ",*(a+j));
}
printf("**********");
p=a;
for(k=0;k<10;k++)
{
printf("%d ",*(p++));
}
printf("**********");
}
这个是用来练习用不同方法输出数组的,第一种用数组名具有的首地址特性直接加整型变量 j 。可以正常使用,为什么把*(a+j)变成*(a++)就报错呢?
rror C2105: '++' needs l-value
为什么把a的地址给指针变量p然后*(p++)就可以呢?
因为数组名a是一个常量,不能被赋值(也就是不能当作左值)
就好像 不能这样做: 5 = 3+4
你定义的指针p指向该数组名,而p是一个变量,可以变化(可以当作左值)
|
|