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