实验目的:
进一步理解指针变量的作用。
实验步骤:
1.分析讨论下面程序的说法。
使用指针变量有两个步骤。
第一步:通过赋值(初始化)操作使指针变量指向某存储单元。(如int i, *pi=&i;或pi=&i;或pi=pj;等)
第二步:通过间接引用操作符使用指针变量指向的存储单元。(如printf("%d",*pi);或*pi=5;等)
2.指出并改正下面程序中的错误。
#include <stdio.h>
void main( )
{
float f = 2.3, *pf;
*pf = *pf * *pf;
printf("%f,%d\n", f, *pf);
}
3.分析下面的程序。
3.1
#include <stdio.h>
void main( )
{
int*pi;
pi= 5;
}
3.2
#include <stdio.h>
void main( )
{
int*pi;
pi= 0;
}
3.3
#include <stdio.h>
void main( )
{
int i;
scanf("%d", &i);
if(i > NULL)
printf("%d是正数!\n", i);
else
printf("%d是非正数!\n", i);
}
分析:
1)3.1和3.2两个程序有何区别?
2)如何评价程序3.3?0与NULL相同吗?通常如何使用?
4.(练习9.13)已知整型指针变量pa,pb,pc分别指向整型变量a,b,c。按下面要求编程。
4.1使用指针交换a,b,c的值,使变量a,b,c按升序排列。(指针指向的对象不变,即pa一直指向a。)
4.2变量a,b,c的值不变,但pa,pb,pc指向的变量按升序排列(即pa指向值最小的变量。)