注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

时间记录器

记录我的Linux、Android学习之路

 
 
 

日志

 
 

指向指针的指针  

2010-09-28 16:04:35|  分类: C语言相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

指针变量能指向任意一个变量(包括指针变量)
指向指针的指针定义方法  ,例如int   **p;      定义了一个指针变量p,他指向另一个指针变量(该指针变量又指向一个整型变量),是一个2级指针,由于指针运算符*是按自右向左顺序结合,因此上述定义相当于:int *(*p);  (*p)是指针变量形式,它外面的*表示p指向的又是一个指针变量,int表示后一个指针变量指向的是指针变量

怎样使一个指针变量指向另一个指针变量呢?
int  **p1;
int  *p2;
int  i=3;
p2=&i;  (使p2指向i)
p1=&p2; (使p1指向p2)

 

看一个实例:

uboot中,mkimage工具的源文件mkimage.c

int
main (int argc, char **argv)
{
..........

 params.cmdname = *argv;//指向指针的指针,

..........

}

其中char *cmdname;是一个指针变量。编译出来的程序最后在终端下这么执行:

 [root@hostname]#mkimage -n "linux-2.6.x" -A arm -O linux -T kernel -C none -a 30007fc0 -e 30008000 -d zImage uImage

(这里还有内容,以后添加)

 

其中,argv是终端输入的一串参数,实际上是以字符串的形式输入的,即{ -n "linux-2.6.x" -A arm -O linux -T kernel -C none -a 30007fc0 -e 30008000 -d zImage uImage}这串数据就是第二个参数,字符串参数。

指向指针的指针变量argv中保存了这串字符的首地址(亦即字符串的指针),所以params.cmdname = *argv;这句就是把字符串的首地址赋值给cmdname指针变量。

  评论这张
 
阅读(287)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017