指針的第二次總結

#include<stdio.h>

int main(){
	// ar的類型爲: 1 char[]:表示一個數組,2 char *:表示一個常量指針
	char ar[10]={0};
	printf("char a[10]:\n");

	printf("&ar = %p\n", &ar);
	printf("ar  = %p\n", ar);
	printf("*ar = %p\n", *ar);
	printf("ar[0] = %p\n", ar[0]);

	printf("\n");
	// par的類型爲:char *,指向的是char類型變量,所以char * = char []
	char *par=ar;
	printf("char* par=a:\n");

	printf("&par = %p\n", &par);
	printf("par  = %p\n", par);
	printf("*par = %p\n", *par);
	printf("par[0] = %p\n", par[0]);	

	printf("\n");

	// ppar的類型爲:char (*)[10],指向的是char [10]類型變量 char(*)[10]=&(char [10])
	char (*ppar)[10]=&ar;
	printf("char (*ppar)[10]=&ar:\n");

	printf("&ppar = %p\n", &ppar);
	printf("ppar  = %p\n", ppar);
	printf("ppar[0] = %p\n", ppar[0]);
	printf("*ppar = %p\n", *ppar);
	printf("(*ppar)[0] = %p\n", (*ppar)[0]);
	printf("**ppar= %p\n", **ppar);

	printf("\n");

	// a的類型爲:1 char [][20]:表示一個數組,2 表示char (*)[20]的常量指針
	char a[10][20]={0};
	printf("char a[10][20]:\n");

	printf("&a = %p\n", &a);
	printf("a  = %p\n", a);
	printf("*a = %p\n", *a);
	printf("**a= %p\n", **a);

	// ppa的類型爲(*)[10][20],指向的是char[10][20]類型的變量,char(*)[10][20]=&(char [][20])
	char (*ppa)[10][20]=&a;

	char *ttt=a[0];

	// pt的類型是char (*)[20]:指向的是char [20]的變量,所以char (*)[20]=char[][20]
	char (*pt)[20]=a;

	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章