来了!给买房人的一封信

我记得上次给读者写信,还是在2018年,那时风和日丽,艳阳高照,临近春节,朋友圈里洋溢着喜气。

时隔四年,物是人非。

尤其疫情黑天鹅,改变了经济周期,人们的生活变得坎坷了许多,连回家过年都变成了“抽奖”,朋友圈里晒的变成了不带“星”的绿码。

一千三百多年前的王维,怎么也没想道,他的诗如今有了更好的解释:

“独在疫乡为疫客。”

最近身边发生几件事情,对我感触颇深,这次提笔,就是想通过它们跟屏幕前的大家说说心里话,聊聊“如何过好2022年”。

其中有跟房子有关的,也有跟房子无关的,我相信这些感触可以化作一丝温暖,对你有所帮助。

1

第一件事是前几天坐高铁回家时,隔壁一位大爷求我帮忙,但这件事让我很惭愧。

那天我坐在候车室等车,旁边的大爷拿着很多行李,略显疲惫,眼神中满是不安,为什么注意到他,是因为他老盯着我看,几次欲言又止。

终于,他开口了,“对不起,我想问一下,我这样子的人能回家过年吗?”边说他边从包里,抖抖嗦嗦翻出一张纸。

打开看,原来是一张「核酸检测证明」,阴性。

为了回兰州老家,大爷提前一个月就开始做准备工作了,让儿子帮忙打电话问城市防疫站,问火车站,问街道办事处,问小区……

能问的都问了一遍,有意思的是,得到的答案都不一样。

市里让问一下区,区里说具体要看社区安排,社区说要看行程码带不带“星”,如果带星就隔离,具体往哪隔离,谁接送,还要看社区,社区说,我们也不知道,还要看市里统一安排……

“我问了一个月,都没问明白,我已经2年没回家了……”

大爷说到这里,有些激动,他的心情我理解,于是我赶忙查公众号,查百度,打电话,试着帮他解决。

几经周折,我也凌乱了,因为如大爷所说,市里、区里、社区、小区说法不一致,尤其是社区,要求所有出现过病例的城市返乡人员都要集中隔离。

最后我给他的答案是,“不好意思,我也不清楚”。

 

我明白这句话说出来后,大爷会很难受,但我也知道,燃起希望再破碎,更伤人心。

大爷的疑问不是偶然,我从网上看到更多匪夷所思的事情,比如有些人一下车就被劝返,回到家里第二天,被扣了个「恶意返乡」的帽子,还有人“无星绿码+阴性”,都被从家里揪出来带到酒店集中隔离。

芸芸众生相,疫情这两年,有些地方开始变得扭曲,越来越不对劲了。

大爷的事情我不甘心,于是我做了一个数据统计,发现出现这种扭曲的地方,拥有两个共性:

 

1、分布在小城市、小县城

2、北方居多

看到这里,很多人不乐意了,怎么子木每次谈到城市,都要点名这些地方?是不是有地域歧视。

不好意思,我也是从北方小地方出来的人。不是嫌弃北方,而是真正的爱这些地方,希望它们越来越好。

这跟人一样,要“自知”,而不应掩饰,更不应害怕别人说自己的不是。

回家的路上,听一个朋友说,北方某城市,实体经济连续滑坡,人们的收入几年不见增长,然而城市却在一味地卖地玩房地产,房价越炒越高,年轻人越走越多。

赚来的钱没有多少帮扶小微企业,反而一股脑去给农村做了建设。

 

正常建设没问题,但一个走得只剩下21户的农村,到处铺满柏油马路,还有路灯、绿化带、公园,大价钱盖的凉亭里面没有人,只有老母猪在地上打滚。

我要说的是,一个地方的防疫情况,恰恰是一个城市治理水平的表现,而治理水平又和营商环境、民生环境息息相关,连带的,是整个城市居民的运势。

过去我一直站在房产投资层面讲城市问题,而今天,我要真诚地跟大家说:

 

一个不以民为主的地方,终究会被民所抛弃。

 

2

第二件事是刘学州事件。

说实话,在回家的路上我才把刘学州的经历从头到尾看了一次,从被卖、养父母身亡、网络寻亲到自杀。

最后一封遗书,让我落泪,久久不能言语。

因为就在前一天,我路过一所中学,操场上打球的孩子们,面朝阳光,嘻笑打闹,15岁的少年,这里天堂,那里却是地狱。

刘学州的死,源于“买房”事件背后,网络陌生人的恶意暴力。

刘学州说,其实自己并未提到买房,只是想要一个“家”。一个15岁少年本该有的条件,成了他最大的奢望,我相信他走的时候,一定对这个世界充满了不解、失望、憎恶。

这场悲剧的凶手,就是“网络喷子”,这些自以为手拿正义利剑的群体,正在疯狂地捅伤每一个孤独的人,最可怕的是,他们在作案后依旧可以逍遥法外。

中国真的很大,大到任何奇怪的事情发生,都是正常的。在我们大谈北上广深,6万多一平米房价的时候,很多人没想到国内有6亿人的月收入还不到1000元。

过去,我们收取信息,只能通过电视和杂志,而现在微博一发,全国甚至全球尽知,网络提高了信息的传播效率,但同时,也造成了巨大的“喧嚣磁场”。

喧嚣声中,很少有人在乎真相,在乎的只有自己的立场,刻薄、自私、爱看笑话的人性淋漓尽致。

2021年,网上有数不尽的热传事件,无论好坏善恶,我几乎没有做出评论,不是不想,而是不敢,为何不敢,因为未知全貌!

“未知全貌,不敢置评”,这理应是网民的准则。

前几天网上有一个新闻,因为某地一老板拖欠工人5000块工资,后被工人杀害,网上很多人都在谴责工人,怎么能因为这点钱要了别人的命?甚至有人说,“穷人就是穷命,自己的命不值钱才要杀人。”

最后我默默敲出一行字:

“未经他人苦,莫劝他人善。”

生活不易,生命短暂,我们生而为人,又何苦为难他人?

远离喧嚣最好的方式,就是远离网络,尤其不要看微博的评论区,这是网暴聚集地。

 

拿一本书,捧一份报,添一盏茶,我们从智者心中取真意,与千古伟人对话,保持心中的善,学会“闹中取静”。

3

最后一件事,是我到家后跟几个朋友聊天,“2021年是否赚到钱,2022年怎么看”的看法。

不出意外,一个比一个惨。

开连锁餐饮店的说,关了好几家店,内卷得厉害;开发楼盘的,房子卖不出去,正准备新一轮打折降价;卖炮的说,全市禁炮,哑巴过年,炮厂直接倒闭了;做证券的说,千股跌停,一片绿油油;当老师的说,工作加了一倍,但工资基本没涨……

你知道吗?风往哪个方向吹,草就要往哪个方向倒,年轻的时候,我也曾经以为自己是风,可是最后遍体鳞伤,我才知道,原来我们都是草。

疫情、自然灾害,哪怕是回家过年,飓风一刮,东倒西歪。

2022年好不好过,最大的敌人还是疫情,如果疫情彻底结束,货币工具刺激投资,新基建、旧基建一起拉动经济,减税降费鼓励小微企业,居民收入增长,带动消费,一切就都有可能。

张文宏说,“这将是疫情最后一个寒冬。”

我是比较赞同的,至少我们在2020年实现过“疫情清零”,而且经历了很久时间,这个经历过无数大灾大难的民族,已经磨出了自己的韧性。

当然前提是,各个地方的疫情防控能跟上节奏,学习广东、海南、甚至学习现在的武汉。

前几天我在武汉呆过一段时间,防控层层铺开,井井有条,不过度也不疏忽,完全没有了2年前的稚嫩。

隔壁郑州,也被中央公布了瞒报涝灾数据问题,而经历过诟病的西安,也会像细胞迭代一样,去除顽疾。

你看,一切都在向好的地方出发。

 

 

 

 

 

只经历过春夏秋的人,哪里知道还会有四季。而经历过四季的人,更应该懂得珍惜当下。

2022年,我不会劝你大度。如郭德纲所说:

“我这噗呲一刀,血还没擦干净呢,你过来:哎哟,不叫事儿,要勇敢起来。”

我会劝你:

1、尽量不要做实体,在不确定风险面前,请别烧钱。

 

2、手上留足现金,以备不时之需,同时也能抓住最好的机会。

 

3、冬天储粮,学一门能拿得出手的手艺,多读书提高认知。

 

4、不必患得患失,尤其房子,5年看分晓。

 

5、买房,尽量买二手房,明年开发商盖不好。

 

6、3月尽量抛掉三四线多余的房产。

 

7、尽量赚有钱人的钱。

 

8、多走出去,看风景,体验别人的生活。

 

9、赚不到钱时,就赚身体,多运动别熬夜,让本钱增值。

 

10、珍惜家人,这是最宝贵的财富。

“天之将明,其黑尤烈;飓风过岗,伏草惟存。”

 

现在是拼耐力拼心态的阶段,聪明人要向阳而生,做好准备等待潮起。

信写完了,感谢陪伴,祝大家春节快乐,万事顺遂。

转自:https://mp.weixin.qq.com/s/Cp5EmLjm158KCfV-R1cAyA

在婚恋领域,什么样的女人最有吸引力?

在婚恋领域,什么样的女人最有吸引力?

有人和我说,年轻漂亮女人最有吸引力,因为无论什么阶层,什么年龄的男人,都只喜欢20岁的年轻美女。

有人和我说,女人不能太优秀,过于优秀的女人难以嫁人,因为男人只会娶比自己弱的女人,这直接导致顶级优秀女人嫁不出去,只能被迫单身。

事实上好像也是如此,女博士嫁不掉,年薪50万的优质女嫁不掉,男人好像确实只对那些年轻漂亮的女人感兴趣,无论她们学历和能力有多差。

女人是否漂亮很重要,本身能力不重要,漂亮就是一切,女人只要漂亮就会有富豪男降临给娶走。

率先说这话的,传播此类思想的,不是男拳,是女拳。

著名的女拳文章《你负责赚钱养家,我负责貌美如花》鼓吹的就是女性可以通过美貌获得一切,暗示女性只需要通过美貌,就可以达到独立自主的目的。

当然,把女性视为男人附属品的男拳也持有类似观点,这群男拳女拳都不是啥好东西,都可以归属于邪恶的极端思想。

因为他们够极端,所以整个网络被男拳女拳统治,要么是女拳要么就是男拳,正常点的思想几乎没有容身之地。

在打拳思想纵横网络的今天,这套理论几乎成了金科玉律,洗脑了无数人,不止是女人,就连很多男人也被洗脑。

不信你可以看看今天的网络言论,很多明显不是女拳也不是男拳的人也会持有类似思想,纵然说的没有那么露骨,但总体思路是一致的,大多赞同美貌是女人的最大资本,其他不重要,因为男人不感兴趣。

我曾经也被此类言论迷惑,但总觉得哪里有点不对。

男人真的想要一个除了漂亮一无是处的女人吗?女人的能力真的不重要吗?

作为一个男人,我好好的想了一下,我内心深处完完全全真的不是这么想的。

我认为女人最重要的是素质和能力,而不是美色。

一个高素质高能力的女人,在婚恋市场对男人的吸引力应该远远超过年轻美女。

我这种思想是奇葩,还是目前在外面广为传播的美色是一切的思想是奇葩?

我觉得,我需要寻找一点证据。

首先,我去翻阅了古籍。

哪怕是在男权极盛的古代,史书也明文记载说娶妻娶贤,纳妾纳色。

在古代,男人是主要生产力,女人只能在家打打辅助,好像没啥用,既无法读博,也无法高薪,做官和出门打拼都和女人无缘。

那么在古代这种环境下,应该娶妻娶色啊,年轻漂亮是唯一衡量标准,娶贤做什么?

古人认定,妻不必美,妻贤比妻美要重要的多。

在现代环境下,女人可以上学,可以工作,可以做官,和男性的生产力差距减少到了历史最低,古代男性那种碾压式的生产力优势不复存在。

如果古人所说娶妻娶贤的理论是正确的,那么贤妻在现代社会的婚恋优势会被无限放大,完完全全的碾压纳妾纳色。

但事实上恰好相反,现代社会在传播和引导一种女人美貌就是一切的奇怪思想。

这种女人,放到古代也最多当妾,怎么就成了现代当正妻的衡量标准了?

贤妻不是应该碾压这种女人吗?为什么反而被碾压?

还是说,古人所属娶妻娶贤的理论是错误的?

我在现代社会又搜寻了一些证据。

事实证明,现代男人绝对是喜欢贤妻的,对20多岁年轻美女的兴趣不大,或者是无奈之下的被迫选择。

因为有一个渠道,可以很好的反应出现代男人的真实想法。

别管他们嘴上怎么说,身体是很诚实的。

在眯眯眼事件中,有人说想知道外国人的真实审美,那看看他们在P站(欧美顶级色情网站)中选择什么样的亚裔女主就知道了。

这个方法简直是绝了,真实可靠,无话可说。

我从这个理论的原理出发,进行了一些改造,用来窥探中国男人对女人的真实看法。

风靡中国的男频小说,就是一个最好的窥探渠道。

中国男人沉迷的小说里,意淫的女主是什么样子的?

是干啥啥不会,做啥啥不行,只能拖男主后腿但美貌如花的女人吗?

你敢写这样的女人当女一号,就等着这本小说扑街吧,月票以后别想要了。

男频小说有个共性,首先是以事业线为绝对主线,男主一定是屌丝逆袭,最后一定要统一世界。

至于女主分两种,一种是为了避免男主和尚到老,随便拎一个人出来凑数的,几乎不占篇幅,嫁了之后就打酱油,长期被反派囚禁甚至开局就被打死了,就等着男人在文末救出或者复活,全书中寥寥几笔带过。

这种不叫女主,叫凑数,为了不让男主一辈子当和尚随便弄的一个角色。

还有一种,是真正的女主,占据篇幅很大,浓墨重笔。

凡是这种在男频小说里占据大篇幅描写的女主,都有一个共性,女主出场时永远比男主法力高强,且强的不止一星半点,而且天赋、身世、地位都比男主要强得多,有些甚至直接给写成杂役弟子和宗门圣女之间的差距。

但这样的圣女,却阴差阳错之下爱上了男主,给男主丹药,给男主法宝,帮男主杀敌,在生死关头舍身救男主至少一次以上。

不管这本书是单女主制还是后宫团,最开始出场的那个原配女主一定是按这些特点去定义的,简直就是男频小说的标配。

最后,男主屌丝逆袭,实力超越了女主,最终一统世界。

你可以看看现在的男频小说,是不是都是以上套路。

要么就没有女主,纯事业线打怪升级,非要定一个女主出戏的话,一定是圣女配杂役。

只有这样的小说,才能受到那些男性读者们的追捧,疯狂的投上月票。

这群男人嘴上说的什么不重要,那些月票才是他们内心真正的想法。

男频小说这种套路,其实并不稀奇,古代早就有了。

古代也有小说,而且是纯男频,因为基本只有男性才能读书,写小说和读小说的都是男性。

如果非要定个女主出来,这些古代男人追捧的是什么类型的情感小说?

全部都是富家女和穷书生的故事,最低也是法力高强的狐仙来配穷书生,无一例外,俗到不能再俗的套路。

在《西厢记》里,顶级权贵之女就不喜欢父亲定的权贵之子,非要嫁给穷困潦倒的张生。

这本书,让古代的书生们爽了好几百年,代代新书生都吃这个套路。

这足以说明中国男人从基因里就喜欢这一类的女人,爱慕到了万世不移的地步。

这种女人,才是中国男人的梦中情人,意淫的终极对象。

穷书生凭自己的努力一步步奋斗,终于功成名就,然后娶了一大堆又漂亮又穷的小妾,过上左拥右抱的日子,这一点吸引力都没有。

如果你的小说这么写,那么注定没有任何书生喜欢看。

也许古代曾经有人写过这样的小说,但早就被市场淘汰了,现在连灰都不剩了。

都说男性有狩猎基因,天生有猎人心态。

但实际上,整个自然界的所有猛兽,只要能填饱肚子,绝对没有丝毫兴趣外出捕猎。

甭管你是狮子还是老虎,无一例外,吃饱才是目的,狩猎只是手段,没有任何狮子老虎会对辛苦的狩猎上瘾,只有快饿肚子的时候才会去。

你以为就女人慕强啊,男人一样慕强,谁不希望自己的后代更优秀呢,男人下娶纯粹是因为找不到更好的女性而已,能找到优质女性鬼才愿意下娶。

刚才做了一长串的推理,从古至今寻找证据来证明男性心中真正的想法,但这些只是推理,有没有更直观的证据呢。

还真有。

有人发了个帖子,做了个相关调查,放了2个女性照片,一个又胖又丑但愿意给1个亿,另一个非常漂亮但要30万彩礼,让男性评价自己更愿意和谁结婚。 

在婚恋领域,什么样的女人最有吸引力?
按常规逻辑,男人一定会选第二个,因为这个女人相当的美,区区30万彩礼算什么,第一个实在太丑了。
男人要骨气,不要一个亿,肯定会选那个美女过日子。
但实际上,评论区形成了一边倒的屠杀。
排第一的评论,收获了多达11.2万个赞,直接碾压性优势,而被顶到前面的评论里,没有一个男人对美女感兴趣。 
在婚恋领域,什么样的女人最有吸引力?
这个10万赞的评论,把女拳和男拳联手编制的谎言给撕了个粉碎。
老祖宗说的“娶妻娶贤,纳妾纳色”,再一次被证明为真理。
既然如此,为什么在目前中国实际的婚恋市场中,女博士就是很难嫁人,富裕的女性就是很难嫁人。
我不管你怎么推论的,我也不管老祖宗说了啥,优秀女性特别难嫁这就是事实,你怎么解释?
年薪100万的男人,在一个年薪50万的35岁外貌普通的女人和一个年薪10万25岁外貌美丽的女人之间做选择,会毫不犹豫的选择那个年薪10万的漂亮女人。
这是无可辩驳的事实,而且普遍出现,你又怎么解释?
首先,优秀女性难嫁人这句话是错误的,因为你把优秀的定义给弄反了。
什么叫优秀?
婚恋市场中的优秀和社会常规意义上的优秀是两码事,你在社会上优秀不代表你在婚恋市场上优秀。
婚恋市场中的优秀,指的是有足够的利他性。
不要说你找对象啥都不图,你找对象肯定有所图。
要么图钱,要么图身高,要么图学历,要么图外表,要么图家世,总之你肯定会图一个。
你啥都不图,那街边的老乞丐终身未娶,你为何不嫁?
不图钱就已经不错了,说啥都不图,这鬼话你自己信吗?
婚姻就是两个各有所图的人能互相满足对方的条件,才能最终结合在一起。
这里说的有所图,无一例外指的都是利他性的条件。
比如说,现在中国女性择偶,非常看重男性的经济条件,收入高的男性会占据明显的婚恋优势,而女性收入高带来的优势寥寥无几,甚至成为婚恋缺点。
这里面最大的原因,就是在于中国社会默认男性的收入是要拿出来给妻子用的,至少也得给家庭用。
否则,就“不配当个男人”。
你把这个当对男人的规训也好,封建残余也好,但目前中国社会确实普遍存在这种思维。
因此,中国男人经济收入高具备强大的利他性,对婚配的女人非常有利。
但与此同时,中国社会并没有默认女性的收入需要拿出来给丈夫用,能拿出来给家庭用的就算罕见的好妻子了。
女人的收入女人自己用,这不算什么,并不影响女人“当个女人”。
甚至那些拿妻子钱生活的男人,会被指做“小白脸”,受尽舆论场上负面评价的欺辱,导致女人给钱他都不敢拿。
因此,女性的收入高,对男性没有足够的利他性,所以对男性的吸引力极弱。
女性年入50万和年入10万,在男性眼里没有任何区别,因为这钱和他没关系。
但对于女性来说,由于社会中普遍存在着女人必须上嫁,否则就亏了的思想和言论,所以年入50万的女人要求匹配的男性年入至少要高于50万,自己有房有车则要求男性也至少有房有车,还觉得自己的条件不过分。
但实际上,女人的50万年薪及有房有车,和男人的50万年薪及有房有车那完全就是两码事。
男人的收入和房车,必须拿出来给女人用,天经地义。
女人的收入和房车,绝对不会拿出来给男人用,这也天经地义。
而且就算给你用你都不敢拿,除非你不在乎别人叫你小白脸。
她的钱、房、车,看似很多,但你只能看,不能花。
和自己完全无关的东西,算什么“优质”呢。
马云身家几千个亿,很优质了吧,如果一分都不给你,那和你有什么关系呢?
所以,女人年入50万,这个条件一点都不算优质,最多比年入10万的优质那么一点点,根本没有质变。
愿意分给男人钱才是质变,单纯账面收入增加真不是质变。
但是,如果这个女人觉得自己年入50万,有房有车是一个非常优质的条件,觉得自己和年入50万有房有车的男人平等了,甚至是“下嫁”了,从而趾高气昂,盛气凌人,乃至于满腹怨言,觉得男人收入不比自己高几倍就不配当男人。
在她满腹怨言,天天对你PUA的同时,还要求你拿出巨额资金给她当“家用”。
年入10万的女性,你一年分她10万,她就心满意足了。
但年入50万的女性,你一年分她30万,她也觉得你不配当男人,因为她自己就年入50万了。
而且年入50万的女人生活标准更高,开销会更大,吃饭送礼物要求的档次明显变高,也更难被满足,眼界和要求也会明显提高,即便年薪百万也不会对男人有崇拜和赞美。
换你是男人,你会娶这样的女人吗?娶这样的女人回家干什么呢?找罪受吗?
换位思考,如果一个年入100万的中年油腻男人在婚前声明他赚到的所有钱都自己用,和你无关,相反你每个月需要至少拿出3万的工资来倒贴他,否则他觉得你这个女人不配他年入100万的身份,天天指责你,那你还会觉得这个男人优质吗?
这时候另外一个年入20万的男人,年轻帅气,不要你一分钱,愿意每年分你10万,承担所有家用,而且对你满意的不得了,天天把你当宝贝炫耀。
作为女人,你愿意选哪个?
男女心态其实是一样的。
女博士之类的“优秀”条件在婚恋市场中不被男性认可,也是同样理由,因为对男人而言好像图不到什么,但女人的所图明显增多,导致自己付出的更多收获的更少,实在是大亏特亏。
在女人不愿意分钱,女人的钱拿不得的前提下,男人结婚能图什么?或者说女人的哪项条件对男性构成利他性?
很明显,年轻,漂亮。
这两个条件对男性构成了利他性,是男性可以从中获益的条件,所以在女性不愿意分钱的前提下,男人结婚就只能图这个。
因此,年薪10万,25岁的漂亮外表女性,在婚恋市场上吊打年薪50万,35岁的普通外表女性。
男人眼没瞎,因为站在男人的角度,前者对自己明显更“有利”。
欧美奉行AA制,男女经济分开,男人赚到的钱并不是天经地义归属于女人的,因此我们可以发现在欧美,女人找对象并不是完全的看钱,反而相当重视男人的容貌。
道理很简单,男人赚到的钱如果不给自己用,那他收入高有毛线意义。
25岁的帅哥,明显给自己带来的价值更大。
欧美把这个叫追求真爱,追求女性的自我。
实际上就是欧美男人不愿意分钱而已。
通常上述分析,相信大家已经明白了男人的真正心态。
男人一直是慕强的,从古至今都是,永远不会嫌自己的老婆太强,太能赚钱。
娶妻,一定娶贤,只有纳妾才会纳色。
在现代社会,女人的生产力远远大于古代,男人曾经在生产力方面的巨大优势荡然无存。
单纯靠美色的女人,哪怕在古代都一败涂地,怎么可能在现代社会战胜贤妻。
女人收入高,学历高,有房有车,能力强大,这一定是加分项,而且是大大加分。
男人的本性万世不变,自身强大的女人一定是他们追逐的择偶对象,这样的女人应该具备无以伦比的吸引力。
既然如此,为什么中国今天会搞成这个样子,收入高学历高有房有车的女人反而被弃之若敝履,怎么都嫁不掉,同等条件的男人根本不会选择他们,被迫单身。
这一切,都是拜女拳所赐。
女拳人士宣称男人的一切都应该给女人,女人不应该给男人一丝一毫,男人和女人并不是携手付出打造小家庭的关系,而是女人单方面索取男人就可以了。
简单的说,你的就是我的,我的还是我的。
至于凭什么?
因为女人年轻漂亮啊,因为女人需要生孩子啊。
看起来好像是在为女性争取权益,实际上这种言论直接把女性的定义锁死为年轻漂亮和用来生育。
女拳认为,女人除了这些,其他什么都不用做。
洗脑全社会后,男人会认为,女人除了这些,其他什么都不能做,或者说即便可以做,也对自己没有意义。
既然如此,那年轻漂亮能生孩子,会成为全社会男人择偶的统一标准。
真正独立自主的,真正优质的强大女性,在女拳定义的婚恋市场中,成了负资产,被彻底淘汰出局,失去留下后代的机会。
如今中国的婚恋市场已经被女拳思想统治,年轻漂亮和能生孩子成了女人的一切价值。
这帮女拳,把女人规训成了生育机器。
但实际上,男人真正梦寐以求的配偶,不是只会生孩子的花瓶,而是小说里写的那种强大的宗门圣女。
25岁可以生,35岁一样可以生,无非就是在医院里多花点钱而已,反正也就生1~2个,又不可能生七八个,35岁才开始生也足够了。
是个女人就可以生孩子,但并不是每个女人都能赚大钱。
到底哪个才是真正的优质,一目了然。
前提是,女人赚到的钱,对这个家的付出程度,需要和男人一样高。
女人能赚钱,愿意给钱,且平等对待男人,不觉得自己给了钱就可以为所欲为,这才是极品女人。
和男人的定义一样,愿意给钱,但给了钱也不会为所欲为的男人才算好男人。
女人喜欢这种男人,男人也一定喜欢这种女人。
如果都按女拳那种套路玩,那女人能否能赚钱确实一点意义都没有。
这种思想肆虐的结果,就是女人完全不追求独立自主,完全不追求高学历高收入,更不会追求什么事业成果,把自己年轻漂亮能生育当成唯一资本。
很多事业有成但30多岁的优秀女人,因为女拳思想横行,也被迫放弃自己的事业优势,收入优势,财产优势,只拿年轻漂亮能生育当自己的唯一资本去婚恋市场和那群年轻女孩比拼,自然是输的一败涂地。
这是在推动女性独立自主,还是把所有女性全部规训成男人身上的寄生虫和附属品?
女人只要貌美如花就可以当独立自主的女人,你不觉得这句话仅从逻辑来看也极其可笑吗?
这帮女拳,不把独立自主的女性消灭干净,我看是誓不罢休啊。
我今天很负责任的告诉大家,女人当博士并不会导致自己难嫁人,女人当主管也并不会导致自己难嫁人,女人年薪百万有房有车,更不会导致自己难嫁人。
这些都是绝对的加分项,绝对的优质女人标准。
真正独立自主的女强人,所有男人都会爱慕不已。
当然有个前提,那就是你在恋爱的第一天,就和对方讲清楚你对家庭的看法,谈一下你愿意为家庭承担的责任,谈一下每个月你愿意为家庭共同账户打入的资金,谈一下你对男人的理解和体谅。
相信我,脑子没毛病的男人都一定会选你,那些25岁的妖艳花瓶只配当个花瓶。
如果年入百万还愿意分钱,那你身上的肉还是肉吗?
那是对我沉甸甸的爱啊。
不要只把自己定义成生育机器,你是一个人,一个独立自主的女人。
真正女权思想,不应该从各种角度,用各种歪理邪说潜移默化的把女人改造成生育机器,而是应该推动女人独立自主,推动女人做出顶级的事业成果,顶级的科研成果,为中国的强大做出自己的一份努力。
只有这样,女人才能彻底摆脱只能依靠男人的定位。
高学历,高收入,高能力,高素质的独立女性才应该在婚恋市场上受到热捧,而不是被那些除了貌美如花和会生孩子之外一无是处的花瓶们逼得寸步难行。
每一个女人,都应该努力成为高学历高收入高能力的人,而不是只负责貌美如花,然后指望着男人来养她。
我觉得,这才是真正的女权。
希望真正独立自主的优秀女性,在中国越来越多。

转自:https://mp.weixin.qq.com/s/AFA6HBnxS9w8IsTNgzgLUw

20年后中国楼市的真实景象

成年人要知道的是:你怎么想不重要,关键是这个社会怎么运行。

作者:楼市团长
来源:楼市团长(ID:tz52801)
 

20年,是十分漫长的,也是转瞬即逝的。对于人类而言,20年的时间可能是其美好的青春岁月;对于一个动物而言,20年的时间可能是匆匆而过的一生时光;对于一个国家而言,20年的时间,不过是其发展进程中的转眼一瞬。

 

你或许可以预见20年后自己的容颜变化,不知是否想过20年后的楼市变化呢?


本文作者楼市团长浸淫楼市多年,一直处于投资市场一线,具有丰富的实战经验,接下来我将运用数据和逻辑,为大家描绘20年后的中国楼市真实景象。


要讨论楼市的未来这个问题,人口出生率是绕不开的数据。一说到人口出生率,媒体上简直是一面倒的悲观之词,好像中国20年之后没人了一样。


其实有没有必要那么悲观呢?我只消问诸君一个问题,便马上明了


中国人口出生率下降了请问20年后中国年轻人的总数是增加还是减少了?


答案是:增加了,并且是数以亿计。


这个问题没有想出来的朋友,初中物理不过关,因为人口出生率相当于物理里面的“加速度”概念,虽然出生率下降了,但是每年依然有多则1000万,少则数百万婴儿出生,所以20年后,年轻人总数是增加的。


那么这个数字是多少呢?


20年后中国楼市的真实景象

过去20年,年均新生儿1500万左右,所以将来20年新增的购房需求,仍有3亿+人。这些人主要是2000-2020年出生的,三五年后,正当陆续刚需入市。当然,还有很多刚需的90后、80后,至今没有买房。


2021年开始,中国出口人口降至1000万,预计2021-2040,平均每年出生700万,20年,再产生1.4亿人。


3亿+1.4亿=4.4亿人!


4.4亿人什么概念?比美国总人口还要多!


这4.4亿的需求,就是未来中国楼市的希望。但是,这个希望只存在于五大城市群,因为中国的住宅供应是结构性过剩的。


结构性过剩是什么意思?


通俗来讲,就是中国很多住宅过剩了,并且这些住宅大部分分布在县城,四五线城市,而五大城市群,例如深圳、北京这些地方的人,却找不到安家之所,住房严重紧缺。


有房的地方,没人有人的地方,没房这就是结构性过剩,供需失衡


其实这个道理想想就明白了很多人老家县城的房子,农村的自建房一年都住不了7日,长期空置,而在北上广深打拼他们却要租房住,加班攒首付…


弄清楚这个问题,关于20年后中国的楼市,我们就可以得出几个结论:


1、中国的房价泡沫并不存在于高房价的北京,深圳,上海等特大城市,而是广大的县城,五六线城市。


贵的地方,还会继续涨,没泡沫贱的地方,大家都嫌弃,一跌再跌…


“天之道,损有余而补不足”“人之道,损不足而奉有余”


中国有14亿人,以后有80%的人口集中生活在北京、深圳、成渝等五大都市群周边,其他大片的国土,乡村县城,都是人口凋敝区。


就像美国中部铁锈城市地区,芝加哥什么的,曾经辉煌一时,早就衰落了,现在大量的人口集中在纽约、洛杉矶等头部城市。


这是一个分化的时代,几个头部城市群就把全国的人口瓜分完毕。


2、中国楼市的真正拐点出现在2040年之后,在2040年之前,全中国排名30名之前的城市,房价都是波动性往上增长的。


2000-2010年,3000个城市的房价上涨
2010-2020年,300个城市的房价上涨
2020-2040年,30个城市的房价上涨
2040-2060年,10个城市的房价上涨
……


整个中国的楼市不可例外地像发达国家一样,经历全国普涨到分化上涨的阶段。


PS:为什么拐点出现在2040年呢?因为人口拐点出现在2020年。在这一年,“刷”一声,每年新生儿一下子降至1000万,并且照这个趋势下去,出生率很难大幅反弹。2020年出生的人,20年后才会考虑买房,所以楼市拐点最快也要在2040年才出现,换言之,2040年之前,中国前30名的城市,房价都是涨的。


3、普通人的房产投资至少还能再玩20年,想赚钱趁早


根据上文所讲,在2040年之前,中国还有30个城市的房价会继续上涨,可以买房投资,依然有机会赚到钱。


这20年,是你最后的窗口期,一旦你在这个时期你的资产没有大幅增长,那么你就没有资格参加下一轮的竞争了


因为下一轮中国只剩10个城市的房价还会继续涨了,并且这个10个城市的房价会非常贵,参与的门槛非常高。


20年后中国楼市的真实景象

这道理很简单2010-2020年在老家省会买房的人房子涨了卖掉,所以才能来深圳买房因为资产是一级级往上跳的


所以2020年以后,你的资产如果没有大幅增长,那就无法往上走了,慢慢就被社会甩下来…


防杠声明:不一定所有人都是以资产追资产,有些人踩上大运,创业上市,一样有可能直接买房,参与下一轮资产竞争。


4、20年之后,房子这东西,生下来有就有,没有就是没有,因为买不起了。那个时候,80%的人考虑的问题是怎么交房租,而不是买房。


这玩意儿就像香港的楼市,你出生的时候,父母留了房产给你就可以轻轻松松坐地收租,没有的呢?只能一边忍受高房租,一边拼命加班…


20年后中国楼市的真实景象

 

那我们的子女不忍受高房租行不行呢?不行,因为房租低的地方,找不到工作。


我之前问一个朋友:你既然忍受不了北京的房租,为什么不回老家呢?


他跟我说:我的专业是计算机,老家县城没有码农的职位,回去我无用武之地,只能干苦力活,做搬运工,在北京至少还能混个三四十万一年。


所以这个悖论是:机会多的地方,房价贵房价便宜的地方,没有机会


要不回农村县城混吃等死,要不来大城市租房打拼,只能选一条路。


5、京沪深广20年后房产均价25万一平方,是未来中国房价的制高点,并且这个制高点一定会实现。


2014年,中国货币供应量122万亿,深圳均价2万多


2020年,中国货币供应量218万亿,深圳均价高峰期去到8万


从GDP增速,M2货币供应量来讲,未来20年四大一线城市均价25万每平方是非常合理的。25万每平方,看似很高,其实到那个时候,中国货币供应量可能已经去到1000万亿了,你在马路买斤苹果就要几百块,工资收入10万一个月…


20年后中国楼市的真实景象

 

因为持续的通货膨胀,30年来农民工的工资涨了40多倍,工资都涨了几十倍,房价就不能涨?没天理!

普通人最大的错误是用静止的币值预测未来的房价,我十几年前就想明白了通货膨胀这个问题,才义无反顾地折腾房子,一直走到今天。


当然,大家2021年开始依然不算晚,毕竟中国还有30个城市能继续涨,既然京沪深广均价25万,想必其他城市20年之后均价也得十几万。


从长期趋势来看,如果北京能够涨到25万一平方,那么燕郊未来至少是北京5折,这也是为什么我很看好燕郊的原因之一。


20年后中国楼市的真实景象

事实上,全世界任何一个国家的首都人口都是持续集聚、房价都是不断上涨的。韩国全国总人口5100万,其中首尔+仁川+京畿道整个都市圈人口2600W,全国有50%的人口生活在这里。


20年后中国楼市的真实景象

日本1.1亿人口,东京都市圈3700万人,约三分之一的人口生活在首都。


相比之下,北京1.64万平方公里,人口2151万,占全国人口的1.65%,人口聚集度还有非常大的提升空间。


……


大家永远记住一点:全国的城市消亡了,首都都不会消亡,首都永远繁华。

投资建议:


1.挑对城市


买房子相当于买一座城市的股票,享受和城市一起成长的过程。


四五线县城旁,农村的一幢小破楼,再怎么限制供地,再怎么超发货币,也不会怎么涨了。


工业化以来,人类聚集程度是一直上升的,只有人挤在一起,才能创造出金融,IT,漫展,电影,脱口秀等服务业。


由于计划生育,未来20年,四、五线城市将会是人口净流出,毫无发展潜力可言,衰退无可避免。


而一、二线城市以及部分优质三线城市,人口将进一步上涨。


2.抓住时机


真正成熟的投资者,都能够在很好的时机来回切换,选好不同的房产,玩好概率和赔率。


绝大多数人都是用“点”赌大小,一部分人用“线”撞大运,少数人有“网”能捞到些鱼,而长期赚大钱者绝对都是持有正确方法论的。所以影响投资阶层流动的最大因素还是认知级别。


不管是过去还是未来,在具体某个时机和资产类别上没有把握住机会,都是一次巨大的阶层分化。


绝佳的投资机会一定不是靠追的,而是靠捡的(通常这时大众处于看不见或看不起阶段)。最常见错误的投资行为,是价格越涨胆子越大。高价了才开始乐观,说明一直没看懂又生怕错过下一波,如果既缺乏眼光又管不住情绪,超额收益就只能寄希望于好运了。


正确的思路是逆向操作,当大部分人都认为地产低迷的时候,大胆进场抄底。


3.定投房产


我作为一个经历多轮楼市涨跌的人,见惯了起起落落的风云变幻,每次人们说“房价以后不涨”的时候,房价很快就会迎来一波行情。


信仰是用来打破重建的,当你明白只要楼市的底层逻辑没变,无论政策如何干扰,房价都会继续上涨的时候,就应该坚定地买买买。


4.逢三退一


在你持有2套或以上房产的情况下,每当大市好的时候,就要卖掉手中相对劣质的房产,例如老破旧,县城的房产,以便回笼资金,在楼市下跌回调的时候去买更好的货。经过多轮置换,您手中的房产就会越来越优质。


你相信深圳罗湖60平方的老破旧,经过多轮的置换优化,最终可以变成深圳湾顶级地段的豪宅吗?


我身边这样的朋友比比皆是,理论上,无论你在深圳,还是杭州,成都,广州,还是哪里,只要你房子还在涨,经过优化,最终都可以变到当地顶级富人的地段。


千万不要爱上自住的房子,说到底,这社会谁都有地方住,中国没有多少人是睡马路的,大家缺的是资产,买房实质是理财,赚钱是唯一目的。


买房就等于养猪,猪仔养大了,宰了它换钱,然后去买更多猪仔…


5.财富传承


货币可以不断印,本身没有任何价值,真正有价值是实物资产。


如果你的父母在90年代就发达了,你是希望他们跟你说:


1、银行存了20万巨款,这是爸爸留给你的;
2、爸爸用20万在北京买了一套房,以后给你。


毫无疑问,后者的财富传承才是真正的保值增值。也许房价20年后,不像今天涨得这么厉害了,但是丝毫不影响它作为大类资产的投资价值,翻倍虽然难,跟随通货膨胀持续上涨是没问题的,何况还能长久收租。


在这个越来越残酷的时代,财富争夺非常竞争,随着社会的进步,最终阶层会趋于稳定,可能一套房子就决定了一个人的阶层。


你不为自己想想,也应该为子女想一下,现在不买,可能他以后一辈子也不起了。90年代,深圳的出租车司机、涉外导游,装修建筑工属于高收入群体,三五年的工资就能买一套房,但是这些人没有买房的意识,现在他们的子女长大了,房价已经是可望不可及。


早几年还没有滴滴打车的时候,我去深圳考察,开车的出租车司机就是这样的经历,提起这个事情,他说这是他一生的遗憾,不然他今天至少是一个千万富豪。


我知道这篇文章看完之后,有些人可能会愤愤不平,尤其是还没买房的朋友,但是成年人要知道的是:你怎么想不重要,关键是这个社会怎么运行。
最后,祝每一位朋友都能拥有自己的资产,不断裂变升级!

 

转自:https://mp.weixin.qq.com/s/cPQ7WcWnqUEuyB1XoFgQKQ

启动在即!房地产税务征收将实现全国联网!

 

来源: 米宅

启动在即!房地产税务征收将实现全国联网!

1

就在很多人认为房地产税试点,或将推迟之际。
一则通知悄无声息的出现在国家税务总局的官网上!
启动在即!房地产税务征收将实现全国联网!
《国家税务总局 自然资源部关于进一步深化信息共享 便利不动产登记和办税的通知》,开年一号文件,重要性可想而知!
这是一则国家税务总局与自然资源部信息共享的文件,内容很长,简单概括一下:
2022年底前,全国所有市县税务部门和自然资源主管部门应实现不动产登记涉税业务的全流程信息实时共享。
自然资源主管部门应向税务部门推送统一受理的不动产登记申请和办税信息。主要包括:权利人、证件号、共有情况、不动产单元号、坐落、面积、交易价格、权利类型、登记类型、登记时间等不动产登记信息,以及办理纳税申报时所需的其他登记信息。
敲黑板,画一下重点!
1、时间卡死,年底就要完成。
2、范围广泛,覆盖全国所以县级以上行政区
3、任务明确,不动产涉税业务共享。
换句话说,一旦该项工作顺利完成,会有两个重大的转变:
一是全国房产信息的权限,会全部放开了,也就是说,无论你在北京有一套房还是在鹤岗有一套房,在全国范围内,能查到这些房产。此前这个权限是被限制的。
二是全国房产信息的信息,毫无保留的共享给税务局了。有了这些全国大数据,税务局征收房地产税,易如反掌。毕竟就连薇娅李佳琪,也难逃大数据的天网!
至此房地产税开征的最后一道技术屏障将彻底打破。
房地产税离我们越来越近了!

2

作为关系国计民生的重要税种,房地产税必须遵循“税收法定”的原则。
从动议到落地,期间还要经历人大立法、审议以及地方政府制定实施细则等等法定流程。
任何一步缺失,都有可能引发不可预知的后果!
2021年1月1日正式实施的《民法典》,扫除70年产权的法理障碍。
《民法典》第三百五十九条提出:
住宅建设用地使用权期间届满的,自动续期。续期费用的缴纳或者减免,依照法律、行政法规的规定。
这就意味着,住宅土地使用权满70年之后,可以自动续期,不必担心土地被收回。
如此一来,就为房地产税的实施扫清了土地所有权的障碍!
2021.10 月全国人大通过《关于授权国务院在部分地区开展房地产税改革试点工作的决定》,通过人大授权这种形式,避开了立法先行的困扰。
财政部长刘昆,特意解释:
由于房地产市场全国差异很大,实际情况十分复杂,房地产税立法工作需要循序渐进,稳妥推进。为此,建议“先深化地方试点、在国家统一立法”,由全国人大常委会授权国务院开展房地产税改革试点工作。
试点先行,摸着石头过河,这也符合我国改革进程一贯的传统!
至此,政策层面的所有阻碍已不复存在!

3

房地产税实施牵一发而动全身,技术层面的障碍同样困难重重。
1、不动产统一登记和联网
不动产统一登记是房地产税征收的底层基础。没有统一登记,就无法对全国住房进行统一确权。没有全国住房信息联网,更无从对每个城市每个家庭进行精细化统计。
2014年国务院确定,国土资源部负责不动产登记这项工作,并推进不动产登记信息基础平台建设。
2018年6月,自然资源部发布消息,全国统一的不动产登记信息管理基础平台已实现全国联网,我国不动产登记体系进入到全面运行阶段。
启动在即!房地产税务征收将实现全国联网!
如果说不动产统一登记摸清了“家底”,那么此次国税总局与自然资源部深化信息共享,则为房地产税的全国改革铺平了道路。
2、房地产税计税依据
凭什么征收房地产税,同样是政策实施道路上的一道难题。
二手房参考价,未来有望成为房地产税的计税基础。
2021年2月,在深圳率先推出二手房成交参考价政策后,全国一二线城市及部分热点三四线城市持续跟进,包括宁波、成都、三亚、西安、绍兴、上海、无锡、东莞、金华、温州、合肥、广州、北京等城市。
二手房参考价通常为当地住建局在二手住房网签交易价格基础上,综合考虑税务部门、金融部门的评估价格、周边新建商品住房网签价格等因素评估得出,一般为网签合同价的 6 折左右。
随着二手房参考价的形成机制逐步完善,未来有望成为房地产税的计税基础。
3、征收对象的确定
我国的住房权属关系复杂,多种产权并存,尤其是不具有法律地位的小产权房,数目众多。这类住房计税价值评估难度较大。
在此次的《关于授权国务院在部分地区开展房地产税改革试点工作的决定》中,特意指出,房地产税征收对象不包括农村宅基地及其上住宅,目的是为了减少对农村居民的影响。
商业用地性质的不动产房源,按照原有的政策执行。
房地产税试点期间,没必要眉毛胡子一把抓,如此一来,重点更明确,征收工作的开展难度也会大大降低。
无论是政策层面还是技术层面,各项政策的实施,目的性很明确,就是化繁为简,抓住主干,放弃细枝末叶,通过试点积累经验,为今后全国范围内的正式实施,创造条件!

4

房地产税的试点工作启动迫在眉睫!
最后重申一下那个永恒不变的话题:“房地产税能不能降房价?”
短期而言,房地产税实施对于市场一定是利空,部分炒房者必然会产生恐慌效应,对房价有短期抑制作用。尤其是全国大数据的联网,某些群体的个人隐私无所遁形,威慑作用显著,抑制炒房的效应将会更加突出。
但从中长期来看,房地产税的影响十分有限。
这一点已经被众多已实施房地产税的国家所印证。
房价受到一系列因素影响,房价的未来,取决于人口、土地和经济基本面。
房地产税只是影响因素之一。
同时,从财政博弈角度而言,房地产税作为典型的地方税,最大目的就是为土地财政提供替代选择,弥补地方政府日益减少的土地收入,至于降房价,可以说从头到尾都不在政策目标体系之内。
要明白,楼市调控的目的只有一个字:稳。
房价持续上涨时,要“遏制房价上涨”,这是稳房价;楼市持续调整时,要“防止房价大跌”,这也是稳房价。
最后强调一下,作为共同富裕的有效调节措施,通过税收来进行财富的二次分配,对于普通老百姓,房地产税不会成为你的负担!

 

转自:https://mp.weixin.qq.com/s/Bbe5SrbLiVpEKKyfS_MAHQ

对 C 语言指针最详尽的讲解

指针对于C来说太重要。然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识。所以本文尽可能的通过一篇文章完全讲解指针。

 

为什么需要指针?

 

指针解决了一些编程中基本的问题。

 

第一,指针的使用使得不同区域的代码可以轻易的共享内存数据。当然小伙伴们也可以通过数据的复制达到相同的效果,但是这样往往效率不太好。

因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。

但使用指针就可以很好的避免这个问题,因为任何类型的指针占用的字节数都是一样的(根据平台不同,有4字节或者8字节或者其他可能)。

 

第二,指针使得一些复杂的链接性的数据结构的构建成为可能,比如链表,链式二叉树等等。

 

第三,有些操作必须使用指针。如操作申请的堆内存。

还有:C语言中的一切函数调用中,值传递都是“按值传递”的。

如果我们要在函数中修改被传递过来的对象,就必须通过这个对象的指针来完成。

 

 

指针是什么?

 

 

我们知道:C语言中的数组是指一类类型,数组具体区分为  int 类型数组,double类型数组,char数组 等等。

同样指针这个概念也泛指一类数据类型,int指针类型,double指针类型,char指针类型等等。

 

通常,我们用int类型保存一些整型的数据,如 int num = 97 , 我们也会用char来存储字符:char ch = ‘a’。

 

我们也必须知道:任何程序数据载入内存后,在内存都有他们的地址,这就是指针。

而为了保存一个数据在内存中的地址,我们就需要指针变量。

 

因此:指针是程序数据在内存中的地址,而指针变量是用来保存这些地址的变量。

 

 对 C 语言指针最详尽的讲解

 

 

为什么程序中的数据会有自己的地址?

 

弄清这个问题我们需要从操作系统的角度去认知内存。

 

电脑维修师傅眼中的内存是这样的:内存在物理上是由一组DRAM芯片组成的。

 

对 C 语言指针最详尽的讲解

 

而作为一个程序员,我们不需要了解内存的物理结构,操作系统将RAM等硬件和软件结合起来,给程序员提供的一种对内存使用的抽象。

这种抽象机制使得程序使用的是虚拟存储器,而不是直接操作和使用真实存在的物理存储器。

所有的虚拟地址形成的集合就是虚拟地址空间。

 

对 C 语言指针最详尽的讲解

 

在程序员眼中的内存应该是下面这样的。

 

对 C 语言指针最详尽的讲解

 

也就是说,内存是一个很大的,线性的字节数组(平坦寻址)。每一个字节都是固定的大小,由8个二进制位组成。

最关键的是,每一个字节都有一个唯一的编号,编号从0开始,一直到最后一个字节。

如上图中,这是一个256M的内存,他一共有256x1024x1024  = 268435456个字节,那么它的地址范围就是 0 ~268435455  。

 

由于内存中的每一个字节都有一个唯一的编号。

因此,在程序中使用的变量,常量,甚至数函数等数据,当他们被载入到内存中后,都有自己唯一的一个编号,这个编号就是这个数据的地址。

指针就是这样形成的。

 

下面用代码说明

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#include <stdio.h>
int main(void){ char ch = 'a'; int num = 97;    printf("ch 的地址:%p",&ch);   //ch 的地址:0028FF47    printf("num的地址:%p",&num);  //num的地址:0028FF40 return 0;}

 

对 C 语言指针最详尽的讲解

 

指针的值实质是内存单元(即字节)的编号,所以指针单独从数值上看,也是整数,他们一般用16进制表示。

指针的值(虚拟地址值)使用一个机器字的大小来存储。

也就是说,对于一个机器字为w位的电脑而言,它的虚拟地址空间是0~2w - 1 ,程序最多能访问2w个字节。

这就是为什么xp这种32位系统最大支持4GB内存的原因了。

 

我们可以大致画出变量ch和num在内存模型中的存储。(假设 char占1个字节,int占4字节)

 对 C 语言指针最详尽的讲解

 

 

变量和内存

 

为了简单起见,这里就用上面例子中的  int num = 97 这个局部变量来分析变量在内存中的存储模型。

 对 C 语言指针最详尽的讲解

 

已知:num的类型是int,占用了4个字节的内存空间,其值是97,地址是0028FF40。我们从以下几个方面去分析。

 

1、内存的数据

 

内存的数据就是变量的值对应的二进制,一切都是二进制。

97的二进制是 : 00000000 00000000 00000000 0110000 , 但使用的小端模式存储时,低位数据存放在低地址,所以图中画的时候是倒过来的。

 

2、内存数据的类型

 

内存的数据类型决定了这个数据占用的字节数,以及计算机将如何解释这些字节。

num的类型是int,因此将被解释为 一个整数。

 

3、内存数据的名称

 

内存的名称就是变量名。实质上,内存数据都是以地址来标识的,根本没有内存的名称这个说法,这只是高级语言提供的抽象机制 ,方便我们操作内存数据。

而且在C语言中,并不是所有的内存数据都有名称,例如使用malloc申请的堆内存就没有。

 

4、内存数据的地址

 

如果一个类型占用的字节数大于1,则其变量的地址就是地址值最小的那个字节的地址。

因此num的地址是 0028FF40。内存的地址用于标识这个内存块。

 

5、内存数据的生命周期

 

num是main函数中的局部变量,因此当main函数被启动时,它被分配于栈内存上,当main执行结束时,消亡。

    

如果一个数据一直占用着他的内存,那么我们就说他是“活着的”,如果他占用的内存被回收了,则这个数据就“消亡了”。

C语言中的程序数据会按照他们定义的位置,数据的种类,修饰的关键字等因素,决定他们的生命周期特性。

实质上我们程序使用的内存会被逻辑上划分为:栈区,堆区,静态数据区,方法区。

不同的区域的数据有不同的生命周期。

 

无论以后计算机硬件如何发展,内存容量都是有限的,因此清楚理解程序中每一个程序数据的生命周期是非常重要的。

 

指针变量和指向关系

 

用来保存指针的变量,就是指针变量。

如果指针变量p1保存了变量 num的地址,则就说:p1指向了变量num,也可以说p1指向了num所在的内存块 ,这种指向关系,在图中一般用 箭头表示。

 对 C 语言指针最详尽的讲解

 

上图中,指针变量p1指向了num所在的内存块 ,即从地址0028FF40开始的4个byte 的内存块。

 

定义指针变量

 

C语言中,定义变量时,在变量名前写一个 * 星号,这个变量就变成了对应变量类型的指针变量。必要时要加 ( ) 来避免优先级的问题。

 

引申:C语言中,定义变量时,在定义的最前面写上 typedef ,那么这个变量名就成了一种类型,即这个类型的同义词。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int a ; //int类型变量 aint *a ; //int* 变量aint arr[3]; //arr是包含3个int元素的数组int (* arr )[3]; //arr是一个指向包含3个int元素的数组的指针变量
//-----------------各种类型的指针------------------------------
int *p_int; //指向int类型变量的指针 
double *p_double; //指向idouble类型变量的指针 
struct Student *p_struct; //结构体类型的指针
int(*p_func)(int,int); //指向返回类型为int,有2个int形参的函数的指针
int(*p_arr)[3]; //指向含有3个int元素的数组的指针
int **p_pointer; //指向 一个整形变量指针的指针

 

取地址

 

既然有了指针变量,那就得让他保存其它变量的地址,使用& 运算符取得一个变量的地址。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int add(int a , int b){    return a + b;}
int main(void){ int num = 97; float score = 10.00F; int arr[3] = {1,2,3};
//-----------------------
int* p_num = &num; float* p_score = &score; int (*p_arr)[3] = &arr; int (*fp_add)(int ,int ) = add; //p_add是指向函数add的函数指针 return 0;}

 

特殊的情况,他们并不一定需要使用&取地址:

 

  • 数组名的值就是这个数组的第一个元素的地址。

  • 函数名的值就是这个函数的地址。

  • 字符串字面值常量作为右值时,就是这个字符串对应的字符数组的名称,也就是这个字符串在内存中的地址。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int add(int a , int b){    return a + b;}int main(void){    int arr[3] = {1,2,3};    //-----------------------    int* p_first = arr;    int (*fp_add)(int ,int )  =  add;    const char* msg = "Hello world";    return 0;}

 

解地址

 

我们需要一个数据的指针变量干什么?

当然使用通过它来操作(读/写)它指向的数据啦。

对一个指针解地址,就可以取到这个内存数据,解地址的写法,就是在指针的前面加一个*号。

 

解指针的实质是:从指针指向的内存块中取出这个内存数据。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int main(void){    int age = 19;    int*p_age = &age;    *p_age  = 20;  //通过指针修改指向的内存数据
printf("age = %d",*p_age); //通过指针读取指向的内存数据 printf("age = %d",age);
return 0;}

 

指针之间的赋值

 

指针赋值和int变量赋值一样,就是将地址的值拷贝给另外一个。

指针之间的赋值是一种浅拷贝,是在多个编程单元之间共享内存数据的高效的方法。

 

 

  •  
  •  
  •  
  •  
int *p1  = & num;int *p3 = p1;
//通过指针 p1 、 p3 都可以对内存数据 num 进行读写,如果2个函数分别使用了p1 和p3,那么这2个函数就共享了数据num。

 

对 C 语言指针最详尽的讲解

 

空指针

 

指向空,或者说不指向任何东西。

在C语言中,我们让指针变量赋值为NULL表示一个空指针,而C语言中,NULL实质是 ((void*)0) ,  在C++中,NULL实质是0。

 

换种说法:任何程序数据都不会存储在地址为0的内存块中,它是被操作系统预留的内存块。

 

下面代码摘自 stdlib.h

 

  •  
  •  
  •  
  •  
  •  
#ifdef __cplusplus     #define NULL    0#else         #define NULL    ((void *)0)#endif

 

坏指针

 

指针变量的值是NULL,或者未知的地址值,或者是当前应用程序不可访问的地址值,这样的指针就是坏指针。

不能对他们做解指针操作,否则程序会出现运行时错误,导致程序意外终止。

 

任何一个指针变量在做解地址操作前,都必须保证它指向的是有效的,可用的内存块,否则就会出错。

坏指针是造成C语言Bug的最频繁的原因之一。

 


下面的代码就是错误的示例。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
void opp(){     int *p = NULL;     *p = 10;      //Oops! 不能对NULL解地址}
void foo(){ int *p; *p = 10; //Oops! 不能对一个未知的地址解地址}
void bar(){ int *p = (int*)1000; *p =10; //Oops! 不能对一个可能不属于本程序的内存的地址的指针解地址}

 

 

指针的2个重要属性

 

指针也是一种数据,指针变量也是一种变量,因此指针 这种数据也符合前面变量和内存主题中的特性。

这里要强调2个属性:指针的类型,指针的值。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int main(void){    int num = 97;    int *p1  = &num;    char *p2 = (char*)(&num);
    printf("%d",*p1);     //输出  97    putchar(*p2);          //输出  a return 0;}

 

指针的值:很好理解,如上面的num 变量 ,其地址的值就是0028FF40 ,因此 p1的值就是0028FF40。

数据的地址用于在内存中定位和标识这个数据,因为任何2个内存不重叠的不同数据的地址都是不同的。

 

指针的类型:指针的类型决定了这个指针指向的内存的字节数并如何解释这些字节信息。

一般指针变量的类型要和它指向的数据的类型匹配。

 

由于num的地址是0028FF40,因此 p1 和 p2 的值都是0028FF40

 

*p1  :  将从地址0028FF40 开始解析,因为p1是int类型指针,int占4字节,因此向后连续取4个字节,并将这4个字节的二进制数据解析为一个整数 97。

 

*p2  :  将从地址0028FF40 开始解析,因为p2是char类型指针,char占1字节,因此向后连续取1个字节,并将这1个字节的二进制数据解析为一个字符,即’a’。

 

同样的地址,因为指针的类型不同,对它指向的内存的解释就不同,得到的就是不同的数据。

 

void*类型指针 

 

由于void是空类型,因此void*类型的指针只保存了指针的值,而丢失了类型信息,我们不知道他指向的数据是什么类型的,只指定这个数据在内存中的起始地址。

如果想要完整的提取指向的数据,程序员就必须对这个指针做出正确的类型转换,然后再解指针。

因为,编译器不允许直接对void*类型的指针做解指针操作。

 

结构体和指针

 

结构体指针有特殊的语法:-> 符号

如果p是一个结构体指针,则可以使用 p ->【成员】 的方法访问结构体的成员

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
typedef struct{    char name[31];    int age;    float score;}Student;
int main(void){ Student stu = {"Bob" , 19, 98.0}; Student*ps = &stu;
ps->age = 20; ps->score = 99.0; printf("name:%s age:%d",ps->name,ps->age); return 0;}

 

数组和指针

 

1、数组名作为右值的时候,就是第一个元素的地址。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int main(void){    int arr[3] = {1,2,3};
int *p_first = arr;    printf("%d",*p_first);  //1 return 0;}

 

2、指向数组元素的指针 支持 递增 递减 运算。
(实质上所有指针都支持递增递减 运算 ,但只有在数组中使用才是有意义的)

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int main(void){    int arr[3] = {1,2,3};
int *p = arr; for(;p!=arr+3;p++){        printf("%d",*p);  } return 0;}

 

3、p= p+1 意思是,让p指向原来指向的内存块的下一个相邻的相同类型的内存块。

 

同一个数组中,元素的指针之间可以做减法运算,此时,指针之差等于下标之差。

 

4、p[n]    == *(p+n)

     p[n][m]  == *(  *(p+n)+ m )

 

5、当对数组名使用sizeof时,返回的是整个数组占用的内存字节数。当把数组名赋值给一个指针后,再对指针使用sizeof运算符,返回的是指针的大小。

 

这就是为什么将一个数组传递给一个函数时,需要另外用一个参数传递数组元素个数的原因了。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int main(void){    int arr[3] = {1,2,3};
int *p = arr;    printf("sizeof(arr)=%d",sizeof(arr));  //sizeof(arr)=12    printf("sizeof(p)=%d",sizeof(p));   //sizeof(p)=4
return 0;}

 

函数和指针

 

函数的参数和指针

 

C语言中,实参传递给形参,是按值传递的,也就是说,函数中的形参是实参的拷贝份,形参和实参只是在值上面一样,而不是同一个内存数据对象。

这就意味着:这种数据传递是单向的,即从调用者传递给被调函数,而被调函数无法修改传递的参数达到回传的效果。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
void change(int a){    a++;      //在函数中改变的只是这个函数的局部变量a,而随着函数执行结束,a被销毁。age还是原来的age,纹丝不动。}int main(void){    int age = 19;    change(age);    printf("age = %d",age);   // age = 19    return 0;}

 

有时候我们可以使用函数的返回值来回传数据,在简单的情况下是可以的。

但是如果返回值有其它用途(例如返回函数的执行状态量),或者要回传的数据不止一个,返回值就解决不了了。

 

传递变量的指针可以轻松解决上述问题。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
void change(int *pa){    (*pa)++;   //因为传递的是age的地址,因此pa指向内存数据age。当在函数中对指针pa解地址时,               //会直接去内存中找到age这个数据,然后把它增1}int main(void){    int age = 19;    change(&age);    printf("age = %d",age);   // age = 20    return 0;}

 

再来一个老生常谈的,用函数交换2个变量的值的例子:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#include <stdio.h>
void swap_bad(int a,int b);void swap_ok(int*pa,int*pb);
int main(){ int a = 5; int b = 3; swap_bad(a,b); //Can`t swap; swap_ok(&a,&b); //OK return 0;}
//错误的写法void swap_bad(int a,int b){ int t; t=a; a=b; b=t;}
//正确的写法:通过指针void swap_ok(int*pa,int*pb){ int t; t = *pa; *pa = *pb; *pb = t;}

 

对 C 语言指针最详尽的讲解

对 C 语言指针最详尽的讲解

 

有的时候,我们通过指针传递数据给函数不是为了在函数中改变他指向的对象。

相反,我们防止这个目标数据被改变。传递指针只是为了避免拷贝大型数据。

 

考虑一个结构体类型Student。我们通过show函数输出Student变量的数据。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
typedef struct{    char name[31];    int age;    float score;}Student;

//打印Student变量信息void show(const Student * ps){    printf("name:%s , age:%d , score:%.2f",ps->name,ps->age,ps->score);   }

 

我们只是在show函数中取读Student变量的信息,而不会去修改它,为了防止意外修改,我们使用了常量指针去约束。

另外我们为什么要使用指针而不是直接传递Student变量呢?

 

从定义的结构看出,Student变量的大小至少是39个字节,那么通过函数直接传递变量,实参赋值数据给形参需要拷贝至少39个字节的数据,极不高效。

而传递变量的指针却快很多,因为在同一个平台下,无论什么类型的指针大小都是固定的:X86指针4字节,X64指针8字节,远远比一个Student结构体变量小。

 

函数的指针

 

每一个函数本身也是一种程序数据,一个函数包含了多条执行语句,它被编译后,实质上是多条机器指令的合集。

在程序载入到内存后,函数的机器指令存放在一个特定的逻辑区域:代码区。

既然是存放在内存中,那么函数也是有自己的指针的。

 

C语言中,函数名作为右值时,就是这个函数的指针。

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
void echo(const char *msg){    printf("%s",msg);}int main(void){    void(*p)(const char*) = echo;   //函数指针变量指向echo这个函数
p("Hello "); //通过函数的指针p调用函数,等价于echo("Hello ")    echo("World"); return 0;}

 

const和指针

 

const到底修饰谁?谁才是不变的?

 

如果const 后面是一个类型,则跳过最近的原子类型,修饰后面的数据。
(原子类型是不可再分割的类型,如int, short , char,以及typedef包装后的类型)

 

如果const后面就是一个数据,则直接修饰这个数据。

 

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
int main(){    int a = 1;
int const *p1 = &a; //const后面是*p1,实质是数据a,则修饰*p1,通过p1不能修改a的值 const int *p2 = &a; //const后面是int类型,则跳过int ,修饰*p2, 效果同上
    int *const p3 = NULL;      //const后面是数据p3。也就是指针p3本身是const .
    const int *const p4 = &a;  // 通过p4不能改变a 的值,同时p4本身也是 const    int const *const p5 = &a;  //效果同上
return 0;
} typedef int *pint_t;  //将 int* 类型 包装为 pint_t,则pint_t 现在是一个完整的原子类型
int main(){ int a = 1; const pint_t p1 = &a; //同样,const跳过类型pint_t,修饰p1,指针p1本身是const pint_t const p2 = &a; //const 直接修饰p,同上
    return 0;}

 

深拷贝和浅拷贝

 

如果2个程序单元(例如2个函数)是通过拷贝他们所共享的数据的指针来工作的,这就是浅拷贝,因为真正要访问的数据并没有被拷贝。

如果被访问的数据被拷贝了,在每个单元中都有自己的一份,对目标数据的操作相互不受影响,则叫做深拷贝。

 对 C 语言指针最详尽的讲解

 

 

附加知识

 

指针和引用这个2个名词的区别。他们本质上来说是同样的东西。

指针常用在C语言中,而引用,则用于诸如Java,C#等 在语言层面封装了对指针的直接操作的编程语言中。

 

大端模式和小端模式

 

1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。个人PC常用,Intel X86处理器是小端模式。

 

2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

 

采用大端方式进行数据存放符合人类的正常思维,而采用小端方式进行数据存放利于计算机处理。

有些机器同时支持大端和小端模式,通过配置来设定实际的端模式。

 

假如 short类型占用2个字节,且存储的地址为0x30。

short a = 1;

 

如下图:

 

 对 C 语言指针最详尽的讲解

 

//测试机器使用的是否为小端模式。是,则返回true,否则返回false
//这个方法判别的依据就是:C语言中一个对象的地址就是这个对象占用的字节中,地址值最小的那个字节的地址。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
bool isSmallIndain(){      unsigned int val = 'A';      unsigned char* p = (unsigned char*)&val;  //C/C++:对于多字节数据,取地址是取的数据对象的第一个字节的地址,也就是数据的低地址
return *p == 'A';}

 

 

– EOF –

转自:https://mp.weixin.qq.com/s/IZgKdwJbH-5C2LoWOhZNaQ