gpt4 book ai didi

C 初学者,指针和取消引用

转载 作者:行者123 更新时间:2023-12-04 10:37:37 28 4
gpt4 key购买 nike

我试图理解 C 中的整个指针和取消引用。我几乎明白了,但遇到了非常简单的代码,结果我不明白:

char *ptr = "Characters";
char val = *ptr;
char *chrptr = &val;
printf("Value under character pointer is: %p / %c\n", &val, val);
printf("Dereferenced character pointer: %p\n", chrptr);
printf("Array pointer: %p\n", ptr);

现在,正如我在执行前所理解的那样,ptr == chrptr == &val,但实际上 ptr != chrptr == &val。这是为什么?

最佳答案

char *ptr = "Characters"; // returns a pointer to 'C'
char val = *ptr; // dereferences the pointer to 'C' and copies 'C' into val

val有自己的内存位置,所以val的地址会不同

 char *chrptr = &val; //chptr points to val. A different memory location.

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

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