實驗9-5 指標變數的運算
實驗目的:
理解指標變數運算的特點。
實驗步驟:
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]。