标题:请教问题,为何打印出Beijing?
只看楼主
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
结帖率:73.68%
已结贴  问题点数:20 回复次数:11 
请教问题,为何打印出Beijing?
  最近在做些C的练习题,发现一道有关指针的基础类题目,知道打印出的是“Beijing”,但忘记是如何实现的了,请教下。
#include<stdio.h>
void main()
{
    char str[][8]={"Hello","Beijing"},*p=str[0];
    printf("%s\n",p+8);
}
搜索更多相关主题的帖子: 练习题 如何 
2017-03-25 15:19
yanzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:104
专家分:372
注 册:2017-2-7
得分:10 
2017-03-25 15:35
zhuaaaaaa
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2017-3-25
得分:0 
回复 2楼 yanzy
我记得哪儿好像有+1就行的,+1 +8这怎么区分啊。
2017-03-25 15:51
yanzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:104
专家分:372
注 册:2017-2-7
得分:0 
回复 3楼 zhuaaaaaa
*p=str[0]; 等价于 *p=str[0][0],同样等价于 *p=str,即指向首地址,在这里根据前文是二维字符串数组,每一维只有8个成员,即内存中分配8个连续的地址,那么第九个地址(p+8)就是第二维的首地址
2017-03-25 16:09
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
以下是引用zhuaaaaaa在2017-3-25 15:51:47的发言:

我记得哪儿好像有+1就行的,+1 +8这怎么区分啊。

想是这样:
#include<stdio.h>
void main()
{
    char str[][8]={"Hello","Beijing"};
    char (*p)[8]=str;
    printf("%s\n", p);
    printf("%s\n", p+1);
}
2017-03-25 16:11
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
得分:0 
回复 2楼 yanzy
明白了,拍照解答问题,感谢。

I'm a new comer
2017-03-25 16:33
邹阳
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:124
专家分:402
注 册:2015-10-8
得分:0 
回复 5楼 吹水佬
好的,明白了,谢谢。

I'm a new comer
2017-03-25 16:34
张乾
Rank: 2
等 级:论坛游民
帖 子:6
专家分:16
注 册:2017-2-22
得分:0 
学习了
2017-03-25 16:51
zhuaaaaaa
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2017-3-25
得分:0 
回复 5楼 吹水佬
还是不大明白为什么这样就可以了,具体有什么区别吗
2017-03-25 17:04
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复 9楼 zhuaaaaaa
是不是这样就好理解了呢
程序代码:
#include<stdio.h>
void main()
{
    char* str[]={"Hello","Beijing"};
    printf("%s\n",str[1]);
} 


 

DO IT YOURSELF !
2017-03-25 20:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475481-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.344017 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved