《指针的编程艺术(第二版)》一2.4 练习

    xiaoxiao2024-07-31  104

    本节书摘来自异步社区《指针的编程艺术(第二版)》一书中的第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; } 相关资源:Visual C 开发实战1200例(第1卷).(清华出版.刘锐宁.梁水.李伟明).part1
    最新回复(0)