设为首页 加入收藏

TOP

深入浅出C指针(一)基本概念 (二)
2014-11-24 00:40:17 来源: 作者: 【 】 浏览:83
Tags:深入浅出 指针 基本 概念
2的值是多少。哈哈,好吧,让我们来一点点分析。
从括号最里面开始:
p1是一个指针,他的值是total_count的地址;
&p1是一个地址,即指针p1的地址,我们用刚才的小技巧来看看,即地址p1地址,即指针p1的指针。
*(&p1)是一个值,这个值是&p1表示的地址所在内存的值实际上就是p1的值,&对p1进行了一次引用操作,*对其再解引用,实际上没有变化。此时*(&p1)的值为total_count的地址。
*(*(&p1))为total_count的值,也就是542.
到此,该表达式的分析结束,不过在实际编程中,没有人会用如此复杂的表达式进行编码。


4.指针的指针
指针的指针,即地址的地址。第一个地址是狭义上的地址,该地址实际上已经被“值”化,第二个地址是我们传统意义上的地址。这句话理解起来有些困难,我们先来看看下面的表达式;
int *p1 = &total_count;
int **p2 = &p1;
第一个表达式的意义我们已经清楚了,我们申请了一个指针变量,或者说是地址变量,它保存的是total_count的地址。
第二个表达式我们来一步步分析,p1是一个指针,即一个地址,&为地址符,加起来就是地址的地址,或者说指针的指针。而int **p2 我们可以这样理解 int *X,我们定义了一个指针变量X ,X为*p2,即X也是一个指针变量,加起来的意思就是我们申请了一个p2指针变量,这个指针变量指向的也是一个指针变量。
同理: int ***p3 = &p2;
int ****p4 = &p3;
......都是成立的表达式,不过在实际编码中,遇到的最多情况是指针和指针的指针这两种情况。


摘自 Kernel & UI
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇利用HGE引擎设计的角色部分 下一篇深入浅出C指针(二)一维数组

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: