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 掌握鍊錶...