实验目的:
理解指针变量运算的特点。
实验步骤:
1.分析程序指出数组元素在内存中的存放特点。
1.1
#include <stdio.h>
void main( )
{
inta[3] = {1, 2, 3};
inti;
for(i=0;i<3; ++i)
printf("%x\t",&a[i]);
}
1.2
#include <stdio.h>
void main( )
{
charch[6] = "China";
inti;
for(i=0;i<6; ++i)
{
printf("%x\t",&ch[i]);
}
}
1.3
#include <stdio.h>
void main( )
{
intb[2][3] = {1, 2, 3, 4, 5, 6};
inti, j;
for(i=0;i<2; ++i)
{
for(j=0;j<3; ++j)
printf("%x\t",&b[i][j]);
printf("\n");
}
}
2.分析下面的程序,并根据输出结果分析指针变量运算的特点。
2.1
#include <stdio.h>
void main( )
{
inta[3] = {1, 2, 3};
inti, *p;
p= &a[0];
for(i=0; i<3; ++i, ++p)
{
printf("a[%d]:%x,%d\n",i, &a[i], a[i]);
printf("a[%d]:%x,%d\n",i, p, *p);
}
}
2.2参照2.1编程使用指针变量输出1.2中数组的元素。
2.3参照2.1编程使用指针变量输出1.3中数组的元素。
3.指针变量p的内容为0x0012ff00,求出表达式p+1的值和类型。
4.分析程序。
#include <stdio.h>
void main( )
{
int a[3] = {1, 2, 3};
int *pa, *p;
pa = &a[0];
for(p=pa;p<=&a[2]; ++p)
printf("a[%d]:%d\t",p-pa, *p);
}
分析:
1)写出程序的输出,并说明程序的执行过程。
2)利用指针,编程从右至左输出数组元素即依次输出a[2],a[1],a[0]。