gpt4 book ai didi

c - 为什么输出是这样呢?

转载 作者:行者123 更新时间:2023-11-30 21:34:14 25 4
gpt4 key购买 nike

我知道 unsigned int* 和 int* 不兼容。但由于 i,j 是 int* (int 指针),那么它们如何使用无符号类型打印。为什么它给出输出 0!!

#include<stdio.h>
//#include<conio.h>
main()
{
int *i,*j,**k;
//i+2;
k=&i;
printf("\n*k=%u j=%u i=%u",*k,j,i);
//getch();
}

输出:

*k=0 j=0 i=0

这是 295 C 问题的问题之一,我只是想了解这段代码中发生了什么!这段代码不是我写的!

最佳答案

正如评论中已经指出的,当您使用未初始化的变量时,您会出现未定义的行为,因此可以打印任何内容(否则程序可能会崩溃)。

因此请确保在使用变量之前对其进行初始化。

您还应该使用 %p 打印指针值

int main()
{
int *i,*j,**k;

// Initialize i, j and k
int x = 42;
i = &x;
j = &x;
k=&i;

// Use i, j and k
printf("\n*k=%p j=%p i=%p",(void*)*k, (void*)j, (void*)i);

return 0;
}

示例输出:

*k=0xbfd9eb8c j=0xbfd9eb8c i=0xbfd9eb8c

关于c - 为什么输出是这样呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38008700/

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