c语言关于指针问题 int x=2,y=5,*px=&x,*py=&y;这个语句*px=&x正确么,如果正确的话在vc++6.0中是如何运

2026年09月22日 02:20
有5个网友回答
网友(1):

int x=2,y=5,*px=&x,*py=&y; 这叫声明,不叫语句。
声明中 int *px=&x; 正确。它声明 px 是指针,并 初始化为 x 的地址。

如果不是声明,而是语句:
int x=2, *px; // 声明 变量 x, 初始化 x=2, 声明 px 是 指针 变量
*px=&x; // 这里 是语句,这个语句 不正确。
语句里要写:
px = &x; // 把 x 的地址 赋给 px, 也就是 让 px 指向 x.
接下来要是有语句:
*px = 5; // 这个语句正确, 语句里 *px 是 值
y = *px; // 这个语句正确, 语句里 *px 是 值
--------------
C/C++ 奇葩之一,外貌相同的东西,在声明里 和 在 语句里 却可能 不是一回事。

网友(2):

正确。因为这是声明语句,前面有int管着,变量名间是逗号,不然就是错误的了。

网友(3):

什么也不说啦

网友(4):

是可以运行
&x 是取x变量的地址 也是int类型的数
*px=&x
printf("%d",*px);
就是把x的地址打印出来

网友(5):

算不上正确吧,不过编译肯定没有错,最后的一个语句的意思是将x的地址赋给px指向的x变量。