gpt4 book ai didi

C指针取消引用

转载 作者:太空宇宙 更新时间:2023-11-04 06:31:08 24 4
gpt4 key购买 nike

我在测试程序中写了这些指令:

char *p;

然后

p="gibberish";

然后去打印p如下

printf("%s\n", p);

我得到了“乱码”,这让我很惊讶,因为 p 地址没有被初始化;我预计在运行代码时会出现错误,但我没有……请解释一下?

同样,当使用一个带有指针的结构作为其字段之一时,例如

struct dummy
{
int *m;
....
}

如何在虚拟变量 dv 中取消引用 m?我已经尝试过 dv.m 并且它确实有效,尽管我期待 dv.(*m);有什么解释吗?

最佳答案

对于第一个问题,行 p="gibberish"p 初始化为指向字符串 "gibberish" 的第一个字符.

对于第二个问题,假设 dvstruct dummy 类型而不是 struct dummy * 类型,你想要 *(dv.m) 以引用指针。

关于C指针取消引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20451215/

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