gpt4 book ai didi

c - 为什么我不能将指针 int *x 的值设置为 10?

转载 作者:太空狗 更新时间:2023-10-29 16:00:17 26 4
gpt4 key购买 nike

我严重误解了指针,所以希望有人能澄清这一点。

int *x; 是一个指向 int 的指针。 x 指指针本身,*x 指存储在 x 内存位置的(或目标)。

如果我想让 x 指向一个整数,它的值为 10,为什么我不能做 int *x = 10;

我不太明白为什么当我们做 printf("%d", *x); 时,它打印出存储在 x 的值,但我们不能做 int *x = 10;

最佳答案

您的困惑与初始化和赋值之间的区别有关。这些是初始化的例子:

int a = 5;    // valid; "a" is an int which is initialized with the value 5
int *b = &a; // valid; "b" is an int * which is initialized with the address of "a"
int *c = 10; // invalid; "c" is an int * which is initialized with the value 10

虽然这些是作业:

a = 5;    // valid; "a" is assigned the value 5
b = &a; // valid; "b" is assigned the address of "a"
*b = 10; // valid; "b" points to "a", and the value "b" points to is set to 10

请注意,* 的使用在两者之间是不同的。在初始化中,* 表示给定的变量是一个指针,而在赋值(或任何表达式)中的 * 表示指针被取消引用。

关于c - 为什么我不能将指针 int *x 的值设置为 10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54776510/

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