请问数组名加一个常数,表示什么?

jesssy 2002-12-11 05:17:15
比如,数组str[25],那str+2 表示什么?
在线等,谢谢!
...全文
5580 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rollstonelu 2002-12-11
  • 打赏
  • 举报
回复
兄弟们真是循循善诱啊!!不遗余力
这个网站不错


--来没几天的新手留
jian 2002-12-11
  • 打赏
  • 举报
回复
str是一个地址(指针)常量
str+2也表示一个地址(指针)常量

str和str+2差别是这两个地址相差2*sizeof(T),T是str数组的类型
GZCompiler 2002-12-11
  • 打赏
  • 举报
回复
如定义

int str[25];

则str相当于整形指针,可以进行加减运算,str+2则向后移动两个
整形的位置,也就是使str指向数组的第三个元素,和str[2]这
样访问数组元素效果是一样的。

wwl_f117 2002-12-11
  • 打赏
  • 举报
回复
str[2]
nustchenhf 2002-12-11
  • 打赏
  • 举报
回复
指针的加法是每次加一的时候实际上跳过指针类型大小的空间,比如:
int i[10], *pI; double d[10], *pD;
pI=i; pD=d;
pI++; pD++;

则为了保证pI和pD均指向正确的数据,pI++将跳过一个sizeof(int)大小的内存空间,以指向下一个int变量的存储空间;同样。pD++将跳过sizeof(double)的内存空间。
Cybergate 2002-12-11
  • 打赏
  • 举报
回复
str+2=&str[2]=&(2[str])
qqbigdog 2002-12-11
  • 打赏
  • 举报
回复
在c++中数组名是一个常量指针,它指向数组的开头,数组名加2表示把指针向下移两个单位。
如同一个指针加一个常数,*(数组名+i)才等于数组名(i)!!
langziji 2002-12-11
  • 打赏
  • 举报
回复
to : lqh_wh(liqh) ,str+2是地址,而str[2]地址中的值,请別混了。
langziji 2002-12-11
  • 打赏
  • 举报
回复
该数组第三个元素所在的地址。
lqh_wh 2002-12-11
  • 打赏
  • 举报
回复
str+2 = str[2]

70,017

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧