牵小猪看太阳 2023-08-13 11:51 采纳率: 76.2%
浏览 1
已结题

C语言指针地址的问题

请问大家,C语言中指针不是表示地址的一种变量吗?那么地址在64位机是8个字节,指针变量不应该也是8个字节吗?但为什么移动指针比如数组int *p=arr[0],那么只需要加一就可以到arr[1]了,请问是为什么

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-08-13 12:01
    关注

    int指针(也包括别的类型),每+1,自动移动sizeof(int)的大小。
    另外,指针大小和指针指向的元素的大小,不是一回事,char * 也是8个字节(在64bit上),但是指向的内存还是1字节
    int指针8字节,指向的存储单元还是4字节。
    这是规定。
    void指针,+1总是移动1个字节。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 已采纳回答 8月13日
  • 创建了问题 8月13日

悬赏问题

  • ¥15 WPF动态创建页面内容
  • ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
  • ¥15 SQL数据库操作问题
  • ¥100 关于lm339比较电路出现的问题
  • ¥15 Matlab安装yalmip和cplex功能安装失败
  • ¥15 加装宝马安卓中控改变开机画面
  • ¥15 STK安装问题问问大家,这种情况应该怎么办
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线