3 指標,結構體,公用體,檔案

2022-03-17 02:20:48 字數 2986 閱讀 1932

a+1,a[1],&a[1][0],而指向陣列a的指標p,可以用乙個迴圈來輸出所有元素:

for(i=0;i<=11;i++)

printf(「%d,」,*p++);

等價於for(i=0;i<=11;i++)

printf(「%d,」,*(p+i));

(3_main()

,,};

int i,j;

p=a;

printf("%x,%x,%x,%x\n",p,p+1,p+2,p+3);

printf("%x,%x,%x\n",a,a[1],a[2]);

printf("%x,%x,%x\n",a,a+1,a+2);

printf("%x,%x,%x\n",&a[0][0],&a[1][0],&a[2][0]);

for(i=0;i<=11;i++)

printf("%x,",p+i);

printf("\n");

for(i=0;i<12;i++)

printf("%d,",*(p+i));

printf("\n");

for(i=0;i<12;i++)

printf("%d,",*p++);

printf("\n");

for(i=0;i<3;i++)

for(j=0;j<4;j++)

printf("%d,%d,",*(a[i]+j),*(*(a+i)+j));

printf("\n\n");

}指向一維陣列的指標變數

1,定義

int (*p)[4];則指標p是指向具有4個元素的一維陣列的指標

例如#include <>

int main()

; int (*p)[4],i,j;

p=a;

printf(「enter row and colum:");

scanf(「%d,%d」,&i,&j);

printf(「a[%d,%d]=%d\n」,i,j,*(*(p+i)+j));

return 0;}3_

#include <>

int main()

; int (*p)[4],i,j;

p=a;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));

for(i=0;i<3;i++)

printf("%x,",p++);

printf("\n");

p=a;

for(i=0;i<3;i++)

printf("%x,",*(p++));

p=a;

printf("\n");

for(i=0;i<3;i++)

printf("\n");

return 0;}3_

#include <>

int main()

; int (*p)[4],i,j;

p=a;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

printf("a[%d,%d]=%d\n",i,j,*(*(p+i)+j));

for(i=0;i<3;i++)

printf("%x,",p++);

printf("\n");

p=a;

for(i=0;i<3;i++)

printf("%x,",*(p++));

p=a;

printf("\n");

for(i=0;i<3;i++)

printf("\n");

return 0;}3_

#include <>

int main()

; int *p,i;

p=a;

for(i=0;i<12;i++)

printf("%d,",*pp++: ++運算級別比*高,所以可以不加括弧*/

printf("\n");

}8.4 通過指標引用字串

1, 字串的存放方式

字串的可以存放在字元陣列中,以及可以用指標指向。

引用乙個字串,可以用以下兩種方法:使用字元陣列(ch6)和使用指標.

定義指向字元的指標:

char *p;

或者 char *p=」abcde」;

利用指標複製字串:

3_ #include <>

int main()

2, 字元指標作函式引數

複製字串

3_ #include <>

int main()

void copy_string(char *from, char *to)

*to='\0';

} 3_

main()

8.5 指向函式的指標

概念:如果在程式中定義了乙個函式,在編譯時,編譯系統為函式**分配一段儲存空間,這段儲存空間的起始位址,稱為這個函式的指標

定義:資料型別 (*指標變數名)(函式引數表列);

例如: int (*p)(int,int);

p只能指向函式返回值為整型且有兩個整型引數的函式

例, 輸入兩個整數,然後讓使用者選擇1或2,選1時呼叫max函式,輸出二者中的大數,選2時呼叫min函式,輸出二者中的小數。

解題思路:定義兩個函式max和min,分別用來求大數和小數。在主函式中根據使用者輸入的數字1或2,使指標變數指向max函式或min函式。

3_ #include <>

int main()

int max(int x,int y)

int min(int x,int y)

用指向函式的指標作函式引數

把函式的位址作為引數傳遞到其他函式

3_#include <>

利用函式指標求最大值,最小值,相加等3個結果:

int main()

int fun(int x,int y,int (*p)(int,int))

C指標結構體

1007 08a1 若有定義 char str1 6 abcdm str2 abcdef 正確的是 a stycpy str1,str2 b 表示式strcmp str1,str2 的值 0 c str1 str2d 表示式strlen str1 的值為6 1007 b 1008 08c2 main...

結構體的指標應用

什麼是結構體?簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別 而結構...

實驗指標和結構體 有答案

實驗目的 1 掌握位址和指標的基本概念,學會定義和使用指標變數 2 熟悉指標與陣列之間的關係,能正確使用陣列的指標和指向陣列的指標變數 3 掌握指標形參的作用,熟練掌握編寫指標形參的函式 4 掌握結構體型別變數和結構體指標的定義及結構體成員的引用方式 5 掌握結構體陣列的定義及應用方法 6 掌握鍊錶...