免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4433 | 回复: 17
打印 上一主题 下一主题

简单的指针,呵呵 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-19 21:39 |只看该作者 |倒序浏览
#include <stdio.h>

char *pp[]={        //因为优先级,pp[]数组里的每一个元素都指向char类型的指针
        "a",                //所以pp[0]是一个指针,其大小是4字节,pp[0]=&"a",pp[1]=&"bb"
        "bb",                //所以pp存放的是字符串的指针的指针
        "ccc",
        "dddd",
        "over!"
};

int testprint(char *p)
{
        printf("%s\n",p);
}

int main()
{
        int i=0;
        //pp[1]=&"I Love you!"; //可以试试这么写!
        for(i=0; i< sizeof(pp)/sizeof(pp[0]); i++)//传指针
                testprint(pp);

        return 0;
}

论坛徽章:
0
2 [报告]
发表于 2008-05-19 21:49 |只看该作者

回复问题

#include <stdio.h>

char *pp[]={        //因为优先级,pp[]数组里的每一个元素都指向char类型的指针
        "a",                //所以pp[0]是一个指针,其大小是4字节,pp[0]=&"a",pp[1]=&"bb"
        "bb",                //所以pp存放的是字符串的指针的指针
        "ccc",
        "dddd",
        "over!"
};

int testprint(char *p)
{
        printf("%s\n",p);
        
        return 0;
}

int main()
{
        int i=0;
        //pp[1]=&"I Love you!"; //可以试试这么写!
        for(i=0; i< sizeof(pp)/sizeof(pp[0]); i++)//传指针
                testprint(pp);

        return 0;
}

论坛徽章:
0
3 [报告]
发表于 2008-05-19 21:56 |只看该作者
个人水平很菜,只想引几个高手出来探讨指针。。。。

论坛徽章:
0
4 [报告]
发表于 2008-05-19 22:13 |只看该作者
原帖由 潇洒人生 于 2008-5-19 21:56 发表
个人水平很菜,只想引几个高手出来探讨指针。。。。


可以看看《C专家编程》这本书,把它搞懂了,C中的指针就没有问题了。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
5 [报告]
发表于 2008-05-19 22:26 |只看该作者
原帖由 scutan 于 2008-5-19 22:13 发表


可以看看《C专家编程》这本书,把它搞懂了,C中的指针就没有问题了。

agreed. 没事多看点书吧。

论坛徽章:
0
6 [报告]
发表于 2008-05-19 22:33 |只看该作者
pp是**吧,testprint需要的是*

论坛徽章:
1
白羊座
日期:2013-09-22 09:55:40
7 [报告]
发表于 2008-05-20 19:07 |只看该作者
也许你想要的是:
testprint(pp);
or
testprint(*(pp+i));

论坛徽章:
0
8 [报告]
发表于 2008-05-20 20:57 |只看该作者
不好意思,粘贴的时候错了
#include <stdio.h>

char *pp[]={        //因为优先级,pp[]数组里的每一个元素都指向char类型的指针
        "a",                //所以pp[0]是一个指针,其大小是4字节,pp[0]=&"a",pp[1]=&"bb"
        "bb",                //所以pp存放的是字符串的指针的指针
        "ccc",
        "dddd",
        "over!"
};

int testprint(char *p)
{
        printf("%s\n",p);
}

int main()
{
        int i=0;
        //pp[1]=&"I Love you!"; //可以试试这么写!
        for(i=0; i< sizeof(pp)/sizeof(pp[0]); i++)//传指针
                testprint(pp);

        return 0;
}
狂晕自己,实际上我是想回答有个朋友怎么打印一个文件中的字符串来写的。这个例子在vc6.0下是通过的,打印出来的结果自然是
a
bb
ccc
dddd
over!

[ 本帖最后由 潇洒人生 于 2008-5-20 20:59 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2008-05-20 21:02 |只看该作者
nnd,原来粘贴不上中括号,我是用vi编辑,然后粘贴的时候,明明有中括号的,一发表就没有中括号了,绝对是bug,希望斑竹注意。。。。
应该是这个样子
for(i=0; i< sizeof(pp)/sizeof(pp[0]); i++)//传指针
                testprint( pp【i】 );//nnd,又搞一次,传递的是pp呀,系统你小样的别把老子的中括号又省略掉,老子会跟你拼命!
否则
如果是testprint(pp),pp是一个指针的指针,那肯定是通不过的。。。

[ 本帖最后由 潇洒人生 于 2008-5-20 21:08 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2008-05-20 21:07 |只看该作者
败给系统了
我传递的是pp【i】,读起来应该是pp左中括号i右中括号
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP