gpt4 book ai didi

c++ - 为什么我不能像这样: int *p = 6;?直接给int指针赋值

转载 作者:可可西里 更新时间:2023-11-01 18:00:27 25 4
gpt4 key购买 nike

错误:从“int”到“int*”的无效转换
int *q = 8;

工作正常。
*q = 6;

为什么我不能像这样直接将一个 int 赋值给一个 int 指针:int *q = 6;我可以在下一行安全地分配它吗?

最佳答案

因为它们完全不同。第一个是带有初始化表达式的变量定义,即 initialization (指针本身):

int *         q                      = 8;
~~~~~ ~ ~~~
type is int*; name of variable is q; initialized with 8

第二个是赋值(指针指向的对象):

*q                              = 6;
~~ ~~~
dereference on q via operator*; assign the resulting lvalue pointed by q to 6

并且,int *p = 6; 表示定义一个名为 p 的变量,类型为 int* 并用 6 初始化它,失败是因为 6 不能直接用于初始化指针(即错误“从‘int’到‘int*’的无效转换”)。

关于c++ - 为什么我不能像这样: int *p = 6;?直接给int指针赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44966943/

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