1. 程式人生 > >實驗9-5 指標變數的運算

實驗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]。