注册 登录
编程论坛 C图形专区

指针为题?

北辰风 发布于 2013-03-31 10:35, 682 次点击
#include<stdio.h>
int main()
{
  int a=1,b=3,*p,*p1,*p2;
      p1=&a;
      p2=&b;
      p=*p1;
      *p1=*p2;
      *p2=p;
      printf("%d,%d",*p1,*p2);
      return 0;
}
对于第7 8 9三行为什么不能改成如下形式:
     *p=*p1;
     *p1=*p2;
     *p2=*p;
5 回复
#2
qunxingw2013-03-31 13:05
初始化就行
 int a=1,b=3,m,*p,*p1,*p2;
p=&m;
#3
jake_y2013-04-20 17:48
孩子,从内存尺寸上看没有问题的,强转一下就行了。不过你的风格。。路还长啊
#4
mzq19882013-04-21 21:40
因为p指针没有初始化,机器随机给它赋值,有可能让它指向系统空间,这样很危险,所以必须先给它初始化
#5
鈴蘭2013-04-22 22:55
p=*p1;
 *p1=*p2;
 *p2=p;
用这种形式p不能定义为指针变量
*p=*p1;
 *p1=*p2;
 *p2=*p;
用这种形式则p为指针变量,且要指明p的初始指向
#include<stdio.h>
 int main()
 {
   int a=1,b=3,*p,*p1,*p2,c;
   p=&c;
      
       p1=&a;
       p2=&b;
       *p=*p1;
       *p1=*p2;
       *p2=*p;
       printf("%d,%d",*p1,*p2);
       return 0;
 }
#6
hkcmd2013-08-27 23:20
看来指针还用少了,
看了半天,总觉得 p怎么可能=*p1
.....
1