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

作者&投稿:赏君 (若有异议请与网页底部的电邮联系)
#include<iostream.h> void main() { int x=15,y=30; int *px,*py,*pt; px=&x,py=&y; pt=px,px=py,py=pt;~

先说程序一voidswap(int*px,int*py){int*pt;pt=px;px=py;py=pt;//这里你仔细看,只是把指针的指向修改了,并没有修改对应的值}如果修改为如下代码,那么就会发送值的互换voidswap(int*px,int*py){intpt;pt=*px;*px=*py;*py=pt;//这里就是在交换指针所指向地址中的值}下来看程序二voidfsort(char*name[],intn)//name是一个数组的首地址{intk,j;char*temp;for(k=1;k0)//这里的name[j]其实就是name这个字符串数组的某一个元素的值{temp=name[j];name[j]=name[j+1];name[j+1]=temp;//所以这里是实实在在的值交换,不是地址交换}}希望能帮你理解指针

lf是长数型float的意思,即long float
le是长数型指数
B是正确的,A没取址符号,&

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++ 奇葩之一,外貌相同的东西,在声明里 和 在 语句里 却可能 不是一回事。

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

什么也不说啦



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

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