瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 【求助】教材理解问题
过客2007 - 2007-7-1 20:23:00
main()

{ int a,b;

  int *pointer_1, *pointer_2;

  a=100;b=10;

  pointer_1=&a;

pointer_2=&b;

  printf("%d,%d\n",a,b);

  printf("%d,%d\n",*pointer_1, *pointer_2);

}

 
对程序的说明:

1)      在开头处虽然定义了两个指针变量pointer_1和pointer_2,担它们并未指向任何一个整型变量。只是提供两个指针变量,规定它们可以指向整型变量。程序第5、6行的作用就是使pointer_1指向a,pointer_2指向b。


2)      最后一行的*pointer_1和*pointer_2就是变量a和b。最后两个printf函数作用是相同的。

3)      程序中有两处出现*pointer_1和*pointer_2,请区分它们的不同含义。

4)      程序第5、6行的“pointer_1=&a”和 “pointer_2=&b”不能写成“*pointer_1=&a”和 “*pointer_2=&b”。

请对下面再的关于“&”和“*”的问题进行考虑:

1)      如果已经执行了“pointer_1=&a;”语句,则&*pointer_1是什么含义?

2)      *&a含义是什么?

3)      (pointer_1)++和pointer_1++的区别?

【例10.2】输入a和b两个整数,按先大后小的顺序输出a和b。

main()

{ int *p1,*p2,*p,a,b;

  scanf("%d,%d",&a,&b);

  p1=&a;p2=&b;

  if(a<b)

    {p=p1;p1=p2;p2=p;}

  printf("\na=%d,b=%d\n",a,b);

  printf("max=%d,min=%d\n",*p1, *p2);

}


&*pointer_1  这种表达式能不能出现的?


月光狼 - 2007-8-16 16:17:00
讲出答案来啊,不过好像书上都有...
1
查看完整版本: 【求助】教材理解问题