c - 这两个操作有什么区别?
问题描述
我正在学习 C,我看到了这段代码,但我看不出有什么区别。有人可以解释一下吗?谢谢。
#include <stdio.h>
int main(int argc, char const *argv[])
{
int addressAsInt = 0x61FF08;
printf("address = %p\n", addressAsInt);
int address2AsInt = 0x61FF14;
printf("address2 = %p\n", address2AsInt);
printf("rest = %d\n", address2AsInt - addressAsInt);
int* address = (int*) 0x61FF08;
printf("address = %p\n", address);
int* address2 = (int*) 0x61FF14;
printf("address2 = %p\n", address2);
printf("rest = %d\n", address2 - address);
return 0;
}
第一个差异输出 0000000C 和第二个 00000003。我理解第一个但不理解第二个。
解决方案
第一个操作是两个十六进制之间的简单差异(12 = C 十六进制)。
第二个操作是两个指针之间的差异:它给出了可以容纳在两个指针的各个目标之间的相同类型元素的数量。
推荐阅读
- asp.net - ConfigurationManager.AppSettings 正在工作
but not for <asp:Label></h1> <div id="body"><p>I get value from web.config for <code><title></code> and <code><asp:Label></code>.<BR /> In case - excel - 在其他工作表中查找日期
- java - 无法为接口 android.app.IAlarmManager 调用无参数构造函数
- google-tag-manager - 验证后的 Google 跟踪代码管理器触发器 - 页面路径或页面 URL 星标不起作用
- jsp - 在 EL 中使用 getter 而不是字段名更安全吗?
- java - 如何处理数组类型的Java默认构造函数参数?(没有静态工厂方法或构建器模式)
- angular - 如何在 Angular 8.2.14 中正确使用 ngStyle?
- python - Python - 如何通过 for 循环组合数据帧?
- python - 理解 Python 中的访问器和修改器
- java - 如何将日期字符串转换为 joda DateTime?