gpt4 book ai didi

c - 一些指针澄清

转载 作者:行者123 更新时间:2023-12-02 17:53:42 26 4
gpt4 key购买 nike

Possible Duplicate:
C question with pointers

我需要一些有关指针的帮助,特别是以下示例:

#include <stdio.h>
int main()
{
int *i, *j;

i = (int *) 60;
j = (int *) 40;
printf("%d", i - j);

return 0;
}

此代码生成 10作为输出。我只需要知道到底是什么 i - j在这里做。

最佳答案

ij 分别指向内存位置 6040

您在这里所做的是指针减法。如果 ij 是字节指针 (char *),则 i-j 将是 20,正如人们所期望的那样。

但是,对于其他指针,它返回两个指针之间的元素数量。在大多数系统上,(int *)60 - (int *)40 将为 5,因为这二十个字节中有五个 4 字节整数的空间。显然,您的平台有 16 位整数。

关于c - 一些指针澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com