新手求助,指针解引用的问题
发表在C语言图书答疑 2016-07-06
是否精华
版块置顶:
#include<stdio.h>
main()
{
int a=12,b=13,c=14;
int *ilnt1[]={&a,&b,&c},**ilnt2=ilnt1;

char *cChar1[]={"ni","wo","ta"};
char **cChar2=cChar1

printf("%d\n",**ilnt2);
printf("%s\n",*cChar2);
}
//明明ilnt2和cChar2同是二级指针,但是好像字符类的指针在解引用时,没有二级一级的差别,
//ilnt2用两个星号才能得到ilnt1第一个元素的值,12,*ilnt2只是得到a的地址值
//cChar2只用一个星号就能得到第一个元素的值,ni,按*ilnt2的解引用理解,应该得到的是字符串"ni"的地址值呀
分享到:
精彩评论 1
again
学分:250 LV4
2016-07-06
沙发
int ** ppInt;
char ** ppChar;

这两个都是二级指针,并具解引用时,也要用 **。

但是在用printf进行输出时,需要这样输出:
printf("%d\n", **ppInt);
printf("%c\n", **ppChar); 注意这里,这样输出的是字符, 而不是字符串。

要输出字符串要这样输出:
printf("%s\n, *ppChar);  
也就是说 如果用 %s 输出,要的匹配的是 char* 类型, 所以这里用一个 * 进行解引用。


另外:在C语言中, 字符串就是一个数组,而且是以'\0'结尾的数组。
所有关于操作字符串的函数,都要求字符串,以 '\0' 结尾,否则函数就会出错。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照