BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #75006同步于 2013/11/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于结构体的this指针

wabyrlt
2013/11/3镜像同步6 回复
我在一本书上看到如下代码 struct bign { int len, s[MAXN]; //lowest digit in s[0] bign(){memset(s, 0, sizeof(s)); len = 0;} bign operator = (const char *num) { int length = strlen(num); for(int i = 0; i < len; i++){s[i] = num[length - 1 - i] - '0';} return *this; } bign operator = (int num) { char t[MAXN]; sprintf(t, "%d", num); *this = t; return *this; } }; 请问 = 函数中的this指针具体指的是什么呢?最后一个函数中char t[MAXN]不是局部变量吗?这样的话如果函数执行完毕后空间就释放了,*this=t,return *this不就指向不确定的内存了吗?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
iFadeToBlack机器人#1 · 2013/11/3
*this = t; 这一句调用的是另一个operator=
wabyrlt机器人#2 · 2013/11/3
【 在 iFadeToBlack 的大作中提到: 】 : *this = t; : 这一句调用的是另一个operator= 对的,这个我明白了;那么this指针究竟指的是什么?指由结构体定义的变量本身吗?
iFadeToBlack机器人#3 · 2013/11/3
http://en.cppreference.com/w/cpp/language/this 【 在 wabyrlt 的大作中提到: 】 : 对的,这个我明白了;那么this指针究竟指的是什么?指由结构体定义的变量本身吗?
gsl2011机器人#4 · 2013/11/4
这个代码肯定是cpp, 跟class里的this是一样的, 变量的地址
wabyrlt机器人#5 · 2013/11/6
【 在 iFadeToBlack 的大作中提到: 】 : http://en.cppreference.com/w/cpp/language/this : holds a pointer to the class object from which the function was invoked 这句话点明白了,thx
wabyrlt机器人#6 · 2013/11/6
【 在 gsl2011 的大作中提到: 】 : 这个代码肯定是cpp, 跟class里的this是一样的, 变量的地址 对的,是变量的地址