马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 BaysideLizard 于 2023-11-14 22:23 编辑 #include <stdio.h>
//DNX写于2023年10月31日
int main()
{
printf("指向指针的指针测试:\n");
int num = 520;
int *p = #//指针
int **pp = &p;//指向指针的指针
printf("num:%d\n",num);
printf("*p:%d\n",*p);
printf("**pp:%d\n",**pp);
printf("&p:%p, pp:%p\n",&p,pp);
printf("&num:%p, p:%p, *pp:%p\n",&num,p,*pp);
putchar('\n');
printf("指针数组和指向指针的指针测试:\n");
char *CBooks[6]={
"《C程序设计语言》",
"《C专家编程》",
"《C和指针》",
"《C陷阱与缺陷》",
"《C Primer Plus》",
"《带你学C带你飞》"};//指针数组
char **ByFishC;//指向指针的指针
char **XjyLoves[5];//指向指针的指针
ByFishC = &CBooks[5];
XjyLoves[0] = &CBooks[0];
XjyLoves[1] = &CBooks[1];
XjyLoves[2] = &CBooks[2];
XjyLoves[3] = &CBooks[3];
XjyLoves[4] = &CBooks[4];
printf("FishC出版的书:\n%s\n",*ByFishC);
printf("小甲鱼喜欢的书:\n");
for(int i = 0;i < 5;i++)
{
printf("%s\n",*XjyLoves[i]);
}
putchar('\n');
printf("指针和一维数组测试:\n");
int array[10] = {0,1,2,3,4,5,6,7,8,9};//一维数组
int *ppp = array;//指针
//array就是&array[0]
for(int i =0;i < 10;i++)
{
printf("%d\n",*(ppp + i));
}
putchar('\n');
printf("数组指针和二维数组测试:\n");
int arrayb[3][4] = {
{0,1,2,3},
{4,5,6,7},
{8,9,10,11}};//二维数组
int (*pppp)[4] = arrayb;//数组指针
for(int i = 0;i < 3;i++)
{
for(int j =0;j < 4;j++)
{
printf("%-3d",*(*(pppp+i)+j));//%-3d左对齐占3个格
}
putchar('\n');
}
return 0;
}
运行结果:
指向指针的指针测试:
num:520
*p:520
**pp:520
&p:000000000061FDE0, pp:000000000061FDE0
&num:000000000061FDEC, p:000000000061FDEC, *pp:000000000061FDEC
指针数组和指向指针的指针测试:
FishC出版的书:
《带你学C带你飞》
小甲鱼喜欢的书:
《C程序设计语言》
《C专家编程》
《C和指针》
《C陷阱与缺陷》
《C Primer Plus》
指针和一维数组测试:
0
1
2
3
4
5
6
7
8
9
数组指针和二维数组测试:
0 1 2 3
4 5 6 7
8 9 10 11
Process returned 0 (0x0) execution time : 0.045 s
Press any key to continue.
在FishC学C的第十一天
加油! |