鱼C论坛

 找回密码
 立即注册
查看: 4656|回复: 2

请教一个问题。

[复制链接]
发表于 2013-7-30 21:56:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 海豚c 于 2013-7-30 22:22 编辑

int a[],int i;
int z;
z=a+i;
那么此时z=a+i 代表啥意思呢?它跟a有什么关系吗?我是看视频看到c语言指针第六集,这个问题想了好久想不通,哪位师傅能告诉我一下这个是什么意思的?


我不知道这样通不通顺,课件源码是这样的:
void max_min_valve(int a[],int i)
{
int *p,*a_end;
a_end=a+i;//就是这一句,不太理解
max=min=*a;
for(p=a+1;p<a_end;p++)
{
  if(*p>max)
  {
   max=*p;
  }
  else if (*p<min)
  {
   min=*p;
  }
}
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-7-30 22:17:18 | 显示全部楼层
a是数组名,a表示的是数组首元素的地址,(a+i)表示是数组第i个元素的地址,即&a[i]。
你贴的课件源码中:
int *p,*a_end;
a_end=a+i;
左值a_end是一个指向整型的指针变量;右值为整型数据的地址,两者类型匹配,进行赋值没有问题。
而你的举例里:
int z;   //如果是int *z;就对了
z=a+i;     
左值z是整型变量,和右值类型不匹配。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-30 22:23:33 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-17 07:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表