| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5736 人关注过本帖
标题:P->str++的++加在哪
只看楼主 加入收藏
萤火琴
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2016-12-24
结帖率:100%
收藏
已结贴  问题点数:2 回复次数:10 
P->str++的++加在哪
struct{int len;char *str;}*p;
P->str++的++加在哪
2017-01-03 09:31
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
加在str指针上
2017-01-03 09:49
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
先求p->str的地址值,然后再自增~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-03 10:07
bjut_Allen
Rank: 9Rank: 9Rank: 9
来 自:平乐园工业技术学校
等 级:蜘蛛侠
威 望:8
帖 子:323
专家分:1223
注 册:2016-10-16
收藏
得分:0 
注意大小写啊

Code is my life.
2017-01-03 10:11
萤火琴
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2016-12-24
收藏
得分:0 
回复 2楼 xzlxzlxzl
*p->str++是加在str指向的内容上对吗
2017-01-03 10:41
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:0 
以下是引用萤火琴在2017-1-3 09:31:54的发言:

struct{int len;char *str;}*p;
p->str++的++加在哪

这时p指到哪了?
2017-01-03 10:57
萤火琴
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2016-12-24
收藏
得分:0 
回复 6楼 吹水佬
这时p不是应该指向指针str的地址吗
2017-01-03 11:08
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:1 
以下是引用萤火琴在2017-1-3 11:08:10的发言:

这时p不是应该指向指针str的地址吗

struct{int len;char *str;}*p; 这句只是声明了一个指针p,还没有具体地址?
2017-01-03 11:22
萤火琴
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2016-12-24
收藏
得分:0 
回复 8楼 吹水佬
对对对
2017-01-03 13:18
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
这应该算是题主定义了一个无主结构体指针变量p,因为这个结构体没有名称,所以应该可以认为是无主结构体,如果没有指定变量的话,这种定义是无意义的,如果题主这样写:“struct{int len;char *str;}*p,note;”,无主结构体就又有意义了,这相当于定义了一个结构体全局变量note和一个结构体全局指针变量p,note是有明确空间的,你可以直接使用该结构体变量,也可以使用“p=&note”语句使用指针操作结构体,用如下代码试验就可知道“p->str++;”是加到哪里了:
程序代码:
#include <stdio.h>
struct {int len;char *str;}*p,note;
void main()
{
    p=&note;
    printf("%x\n",p->str);
    p->str++;
    printf("%x\n",p->str);
}

输出结果为:0 1(全局变量会自动初始化为0),这样做不明显,看不出来是不是指针自增,把结构体改成“struct {int len;int *str;}*p,note;”,输出结果就是0 4,只有指针才会根据指针指向的变量类型所占用的字节数来做自增的,普通变量自增只是加1。

[此贴子已经被作者于2017-1-3 13:52编辑过]

2017-01-03 13:42
快速回复:P->str++的++加在哪
数据加载中...
 
   



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

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