网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月16日漏签0天
c++吧 关注:614,975贴子:2,110,893
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 9回复贴,共1页
<<返回c++吧
>0< 加载中...

求C++大佬解惑!!

  • 只看楼主
  • 收藏

  • 回复
  • 不良人天婧星
  • ?:
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
已知利用指针遍历数组的代码为:(数组长度是10)
int* p = arr;
for(int i = 0 ;i < 10 ;i++)
{
cout << *p << endl;
p++;
}
我的疑惑是p不是保存地址的指针变量嘛?然后p++的含义不应该是这个地址往后递增1么?而数组每个元素所占内存空间大小为4,如果想实现遍历数组,不应该是p = p + 4才能使指针找到数组的下一个元素嘛,为什么加个1就能找到下一个元素了?


  • 叫你光盘没叫你光盘
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为指针加一不是地址值加一个byte,而是加sizeof(type)个byte,也就相当于移动到数组的下一个元素。数组根据下标取元素的语法arr[i]的本质就是*(arr+i),所以arr+i必须是数组向后移动i个元素才行。


南昌眠矿州催网络科技
测一下胃难受吃饭就好了,3分钟35题,在线测一测您的健康程度,胃难受吃饭就好了,马上自测健康程度,健康自测量表,做完即出结果!
2025-05-16 12:27广告
立即查看
2025-05-16 12:27:51
广告
  • 幻形术
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
指针本身是有类型的


  • linf771991
  • |
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你的疑惑很好,指针在定义的时候就指定了它所指向内容的类型。char是1字节int是4字节,你也可以强制转换成char每次+4,效果一样的


  • 贴吧用户_53RJDU3
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
指针类型为int,加一表示一次跳过一个int类型


  • 邪神gog
  • &&
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为你定义的是Int类型的指针


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 9回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示