gpt4 book ai didi

c - 关于C中的指针

转载 作者:行者123 更新时间:2023-11-30 18:20:54 25 4
gpt4 key购买 nike

考虑以下程序,

#include<stdio.h>
int main()
{
int marks[]={20,65,45,68,89};
int *x,*y;
x=&marks[2];
y=&marks[4];
printf("%p\n%p\n"x,y);
printf("%p\n%p\n",y-x,*y-*x);
return 0;
}

当我想打印出y-x的值时,控制台应该给我一个等于相应指针地址之间差值的输出。毕竟,我们知道 xy 有地址(“某个整数值”)。然而事实并非如此。为什么?

最佳答案

指针减法并不是简单地减去地址,而是返回两个数组元素之间的距离(以数组元素表示)。

因此,y - x 不是指针,而是值 2 的整数 - 要打印它,您应该使用 %d格式化,现在 %p

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

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