爱问知识人 爱问教育 医院库

c语言指针问题

首页

c语言指针问题

#include <stdio.h>

main()
{
  void swap(int *p1,int *p2);

  int a,b;
  int pointer1,pointer2;
  printf("please input a & b:\n");
  scanf("%d,%d",&a,&b);
  pointer1=&a;
  pointer2=&b;
  if(a<b)
  swap(pointer1,pointer2);
  printf("The result is:%d,%d\n",*pointer1,*pointer2);    

}


void swap(int *p1,int *p2)
{

  int temp;
  temp=*p1;
  *p1=*p2;
  *p2=temp;

};


这个程序作用是应用指针将输入的两个值从大到小输出,编译时候在main函数最后的printf处出现“illegal indirection”,而将printf后面*pointer1和*pointer2改为a和b就可以正常输出了,我想知道是用*pointer1指向为什么不行,谢谢。

提交回答
好评回答
  • 2012-05-08 14:38:24
    你在这里定义的变量
    int pointer1,pointer2;
    这两个变量都是整形变量,不是指针,因此编译器告诉你类型不正确 
    修改为:int *pointer1,*pointer2;
    就可以了 

    好***

    2012-05-08 14:38:24

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 174-193
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):