c语言指向指针的指针
生活随笔
收集整理的這篇文章主要介紹了
c语言指向指针的指针
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
c語言指向指針的指針
歡迎關(guān)注AWP資訊
今天看一下指針的一些復(fù)雜用法,在一些常見的面試題或筆試題目中會(huì)經(jīng)常出現(xiàn),全面了解指向指針的指針,還是從一個(gè)內(nèi)存分布圖開始看起
定義的int a = 3;假設(shè)在內(nèi)存中的起始地址為0x115,在這個(gè)空間中存的變量的值為3,定義的指針變量p,p = &a;p中所保存的是變量a的地址。接下來我們看一下二重指針,指向指針的指針,代碼如下
int a = 3; int *p; int **p0; p = &a; p0 = &p;定義的二重指針p0,p0指向指針p的地址,將p0拆開來分析, 首先是 *p0這個(gè)里面存的是指針p的地址,**p0里面是指向指針p指向的地址的值,p指向的地址是a的地址,變量a里面的值是3,所以最終 * *p0里面的值是變量a的值3,分析了二重指針,再來點(diǎn)挑戰(zhàn)看一下三重指針,定義如下變量
int a = 3; int *p; int **p0; int ***p1; p = &a; p0 = &p; p1 = &p0;還是像上面分析的一樣,定義的三重指針p1,p1指向二重指針的p0的地址,首先是*p1這個(gè)里面是指針p0的地址,**p1里面是指向指針p0指向的地址的值,p0指向指針p的地址,p指向變量a的地址,最終的值也就是變量a的地址,三重指針 * * *p1的值也就是變量a的值。
#include <stdio.h>int main() {int a = 3;int *p;int **p0;int ***p1;p = &a;printf("p = %d, *p = %d\n",p,*p);//p = 變量a的地址,*p = 變量a的值3p0 = &p;printf("p0 = %d,*p0 = %d,**p0 = %d\n",p0,*p0,**p0);//p0 = 指針p的地址,*p0 = 指針p存放的值,也就是變量a的地址,**p0 = 變量a的值p1 = &p0;printf("p1 = %d, *p1 = %d, **p1 = %d, ***p1 = %d\n",p1,*p1,**p1,***p1);//p1 = 指針p0的地址,*p1 = 指針p0里面存放的值,也就是p的地址,**p1 = 變量a的地址值,***p1 = 變量a的值return 0; }我們看一下打印出來的結(jié)果是不是和我們預(yù)期的一樣
總結(jié)
以上是生活随笔為你收集整理的c语言指向指针的指针的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: InstallShield安装与部署
- 下一篇: php网页找注入点,另类找注入点技巧_9