指针应该叫做标识符变量

2016-10-04 14:18:28 +08:00
 deepkolos

花了 4 天时间写的第一篇逻辑博文,欢迎各路大神前来纠错~~

大二底层知识不多,所以哪有有用词不当的,请见谅~~ http://deepkolos.cn/#articles/{ADF360A2-BDDF-8A32-B617-ECF090BA56F1}.html

4009 次点击
所在节点    程序员
32 条回复
realpg
2016-10-04 21:52:19 +08:00
百度贴吧民科吧或许需要这种钻研编程的专家
reus
2016-10-04 21:55:51 +08:00
@deepkolos g++ 6.2.1 和 clang++ 3.8.1 都编译不过。
还是那句话,好好看书,看《 The C++ Programming Language 4th 》之类的,看语言标准是怎样定义的,不要试验,不要以为某个编译器能编译,就当作真理来看待。
因为编译器也会有不遵循标准的地方,编译器也会在该报错时没报。
“指针不常见的使用方式”,我很怀疑你发现的很多都是“未定义行为”,只不过在某个编译器的某个版本恰好符合你的期望,但如果你不真正掌握,只是靠试验和猜测,很有可能踩坑或者埋坑的。

推荐学下 rust ,至少比 C++少很多未定义行为,也有足够的空间让你钻研思考,编译器也只有一个实现,不至于像 C++一样各个实现不一样。

还有不要用百度了,翻墙用 google 吧。什么材料都是,一手的权威的资料才是最好的。
thekoc
2016-10-04 22:18:02 +08:00
@deepkolos 在自然科学领域实验是因为上帝不会告诉你他是怎么实现的…这个语言都是有人(上帝)把标准给你写好了为什么还要实验。。(加深印象的实验不算)
deepkolos
2016-10-04 22:24:29 +08:00
@zmj1316 使用 VS2015 编译的,不知道还有其他编译器的区别,看看我果然是民科啊~~
deepkolos
2016-10-04 22:27:37 +08:00
@reus 我是用 VS2015 编译的,嗯嗯,还是我要学多点东西才行
deepkolos
2016-10-04 22:39:05 +08:00
看到 VS 警告了,原来是 VS 自动忽略多余的 const
ipwx
2016-10-04 23:43:47 +08:00
虽然 @reus 拍砖非常狠,{“观察”、“推测”、“交叉验证”,不是学习 C/C++应有的方法,稍微靠谱的教材都会讲到 const 怎么修饰的,根本用不着你猜测。 },但是楼主你也别被打击了。{“观察”、“推测”、“交叉验证”}其实是非常非常重要的品质,只不过这个列表确实缺少了一个{“阅读”}。读得太少,所以思考的问题大多没有太多意义。所谓人类一思考,上帝就发笑嘛。

{只会读而不会思考的人是无法创造新事物的。}<-这句话我无法给出非常简单地说明,楼主也许只能意会一下。什么时候楼主能够思考每一个 C++ 关键字为什么要存在,设计 C++ 的人是怎么思考问题的,或许楼主就真的读懂了。
alqaz
2016-10-04 23:57:23 +08:00
@deepkolos const long const long const const const & const const ref = test2; 被这个吓到。
aheadlead
2016-10-05 00:25:46 +08:00
@deepkolos
“补充:经过师兄的指点,需要给地址绑定类型信息就可以了*(int*)(0x0018ff44)就可以按照 int 类型的方法操作改地址对应的内存块了”
-------
我以前也这么想过。不过自从学习了“虚拟存储器”,搞明白“虚拟地址空间”之后,就没这么想了。

其实我觉得学习的时候有这样的思考挺好的,上面有些朋友倒凉水倒得太狠了。不过还是推荐楼主一本好书:《 C 语言程序设计:现代方法(第 2 版)》 http://item.jd.com/10064146.html
q397064399
2016-10-05 09:04:17 +08:00
@aheadlead 这样思考本身的路数就不对,所有程序语言的内存模型,只要你看完 CSAPP 第三章,程序语言的机器级表示,所谓的指针 引用 值拷贝 对象拷贝 深拷贝 浅拷贝 就迎刃而解了,要是自己探索 挺浪费时间的
breeswish
2016-10-05 10:41:44 +08:00
翻了第一屏感觉满屏错误,就不没继续看:
函数指针没有问题,存储了这个函数在内存中的位置;
“ const 在修饰的时候在修饰对象的前后皆可以”:虽然都可以但是语义不同, const int * ptr 和 int * const ptr 不是等价的,具体参见 Clockwise/Spiral Rule
deeporist
2016-10-05 11:28:12 +08:00
mov eax,esi
mov eax,[esi]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/310509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX