一道简单的问题,请各位看看!

img


为什么红色的部分不行,蓝色部分的行?
(代码在VS2022上调试,红色部分总报错)

n = &i; 这句本身没什么错误,改变 n 的指向,让指针 n 指向变量 i 的地址。这句的问题出在变量 i 这里,i 是在函数体里定义的变量,它的生命期随着函数调用完毕就结束了,这块的空间就被释放了,所以指针 n 指向了一个不确定的地方。
*n = i; ,这句的作用是将 i 的值赋值给 指针 n 指向的地址空间,这个空间就是函数调用时的实参地址。

这是最基础的语法问题,在C++中,指针都需要加一个*,没有设么原因😅
如果要问原因的话可以去问问微软👻

n是指针,i是整型变量,当然不可以,原因的话你去问C语言之父吧