济南j建设网/正规seo大概多少钱
本节书摘来自异步社区《指针的编程艺术(第二版)》一书中的第2章,第2.4节,作者 蔡明志,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.4 练习
指针的编程艺术(第二版)
1.请问下面程序的输出结果是什么?并说明其含义。
/* exercise2-1.c */
#include <stdio.h>
#include <conio.h>
int main()
{char *diamond="拉钻石";char *p1 = diamond;char **p2 = &p1;char ***p3 = &p2;printf("diamond=%p\n", diamond);printf("&p1=%p, p1=%p\n", &p1, p1);printf("&p2=%p, p2=%p\n", &p2, p2);printf("&p3=%p, p3=%p\n\n", &p3, p3);printf("以下的方法可得到钻石: \n");printf("**p3=%s, *p2=%s, p1=%s, diamond=%s\n", **p3, *p2, p1, diamond);getch();return 0;
}
2.改错题:以下程序分别是Peter 与 Jennifer所编写的,有一些错误,请你加以改正。
(1)
/* pointerBugs.c */
#include <stdio.h>
#include <stdlib.h>
int main()
{int *p;*p=120;printf("The address of p is %#x", p);printf("*p=%d\n");system("PAUSE");return 0;
}
(2)
/* constantPointerBugs.c */
#include <stdio.h>
#include <stdlib.h>
int main()
{int a=100, b=200;const int *p=&a;int * const q=&b; printf("a=%d, *p=%d\n", a, *p);printf("b=%d, *q=%d\n", b, *q);*p=b;printf("*p=%d\n", *p);q=&a;printf("*q=%d\n", *q);system("PAUSE");return 0;
}