C语言笔记:多重解引用

笔记创建时间:2018/10/17

#include<stdio.h>
int main()
{
       const int **pp2;
       int *p1;
       const int n = 13;
       pp2 = &p1;        //允许,但是这导致const限定符失效
       *pp2 = &n;       //有效,两者都声明为const,但是这将导致p1指向n(*pp2已被修改)
       //*p1 = 10;
       printf("%d", *p1);
       return 0;
}

可以看到,可以将pp2指向p1,那么*pp2及为*p1的值
那么将*pp2指向int n,将会导致p1指向n
*p1 = 10;

有效,但是这将改变n的值

#include<stdio.h>
int main()
{
       const int **pp2;
       int *p1;
       const int n = 13;
       pp2 = &p1;
       *pp2 = &n;
       printf("%d\n", *p1);
       *p1 = 10;
       printf("*p1=%d\n", *p1);
       printf("n=%d\n", n);
       return 0;
}

运行如上代码

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒