V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GeruzoniAnsasu  ›  全部回复第 116 页 / 共 149 页
回复总数  2978
1 ... 112  113  114  115  116  117  118  119  120  121 ... 149  
@ryd994 那,可能是适用最后一句 的情况
2019-04-28 06:10:03 +08:00
回复了 jziwenchen 创建的主题 C 问一个初级问题:为何 C 指针这么难
@b00tyhunt3r emmm 因为这句话改过,然后漏把了字删掉了

参数传递时,会把外面的值 复制一份,放到函数里面的 叫另一个名字的 变量的 地址 上 去
2019-04-28 04:11:18 +08:00
回复了 noble4cc 创建的主题 问与答 现在的服务器大部分都是 centos 吗
在熟悉的发行版没用出问题之前,有什么尝试别的发行版的必要吗

所以我自用的虚拟机、ci、docker 都是 ubuntu。。。
我真的奇怪 各位可能一路都是尖子生,才会有 “学习不好的混混=看不清社会 =没吃过苦 =需要开眼界”这种想法


怎么劝一个自杀的人?
“你自杀了生命可就没了!你现在还没跳,还来得及!” ???
还是
“你失去过才明白生命多宝贵”???

不都是搞笑么



为什么叛逆?为什么选择当混混?为什么不学习?每天要打要杀要动刀子“江湖恩仇”的是当事人自己,又不是你,人还没你懂??你给人家说这个??

不都是自认了学不下去、没有才能、放弃了人生,才会走旁路的吗,再让人家看他选的路有多惨有啥用啊,继续学也一样惨啊,有个卵区别啊,听你的干啥??



换作我我可能会强行附会一段自己也混过的经历,先拉进距离,然后有几个点要说的。
1. 走其他路比你自认为没有才能去走的路更需要才能
2. 绝大多数走普通路子的人其实都是没才能的傻逼
3. 我试过混,但我发现我混不来,还是种田,不是,还是勉为其难地看看书比较适合老子
4. 走普通的路子比混社会包容得多

最重要的是告诉他,勉为其难地稍微努点力,哪怕是一点点,实际上也要比完全放弃治疗轻松惬意太多了。每个人都是掂量考察过才会选某条路的,而他现在选这条路的原因是,他发现走第一条路走不通。劝他是让他发现第一条路其实走得通,还很好走。

如果他真的觉得那样酷,审美没救,那第一要务还是先换个环境,身边全是 lowb 天才也努力不起来的。
2019-04-28 03:31:57 +08:00
回复了 jziwenchen 创建的主题 C 问一个初级问题:为何 C 指针这么难
指针不“指”向任何东西。

一个叫做 pointer 的东西但却一点“指”的语义都没有,还要让人去以箭头的概念想象它的作用和细节,当然会令人感到困惑。

在我初学 C 的时候(初中)指针这一张死磕了 1 个月都没怎么看懂。一个叫做 a 的 int,它里面放了 1,要用它的时候用它的名字 a 代表它,要改它的值的时候 a=2,就行。这个语义很直观。

但要想象一个“指针”:
一个叫 p 的“指向 int ”的指针,它指向 a,到这里都还很好理解,可是!!
1. a 的地址跟 p 是 tm 什么关系?
2. p 的地址跟 p 是 tm 什么关系?
3. p 的地址咋就又成指针了?没有东西在指它啊???
4. 把一个箭头传进函数里是什么鬼,这个意象好难想象
5. 蛤?修改箭头的指向本身?为什么我不能把箭头放进一个函数里让这个函数改这个箭头就完事了??
6. 为什么修改 a 里边的值我不能把 a 传进来,必须传一个指着 a 的箭头??明明 a=2 却可以


上面的意象中是含有矛盾的地方的(比如修改 a 的值不能使用 a 这件事)如果把指针想象成箭头,一定会陷入上面的某些困惑里。但实际上指针并不是这种东西。



C 语言其实跟汇编极其接近,别看 C 有这么多内置类型(初中刚学的时候两周卡在第一章的数据类型上差点没放弃),实际上语义上总共也就分为两种,值和地址。

放值的变量,就是那堆 char int float..一开始学背单词背了好久的类型
放地址的变量,就是所谓的指针。

指针不“指”向任何东西,它不是箭头,它仅仅是放了地址的一个变量。


题主问的是指针为什么会这么难,本篇回复也主要想讨论为什么看起来会这么难。我对过去学习的历程一直有记忆与不断的反思,所以大概还能想起一点点当时的想法,但说实话现在已经完全没法理解到难点在哪了,全凭印象。

实际上我接触汇编比接触 C 早,但刚开始的时候依然很难理解指针是个什么鬼东西。因为刚开始学一门语言的时候,你摸不清那些语句的语义细节和全貌是怎样的。就比如同样是闭包这种概念,有谁能说出来在 js golang python c++里,闭包 capture 的是引用还是值?一个相似的概念在不同语言里语义很可能都不一样,更别说完全陌生的东西。

pointer 在我看来是个十分糟糕的抽象,赋予了某种完全误导的意义。如果 pointer 这种类型叫做 address type,可能理解它就完全不需要这么费劲,只需要解释一下值传递以及地址的作用就好: 参数传递时会把外面的值复制了一份放到函数里面的叫另一个名字的变量的地址上去。就算只是作为规则默认接受也要尝试用箭头的意象去理解指针然后再尝试解释为什么要用箭头才能修改函数外的变量的值要容易得多。更糟糕的是为了拟合“指针”或者“箭头”这种抽象,设计了一个真是箭头->的操作符。这个操作符完全不能解释 strcut *p; p->是在干什么。它还不如设计成 assign/binding 用的 operator,比如 let p -> a ;也要比 int *p = &a 这种看起来多此一举的 declaration 要直观得多。(当然如果能理解 declaraion 到底在“声明什么”的话还算能理解为什么得写成这样)


所以会的人,尤其是理解了指针就是放地址的变量的人,是很难再想象到指针难点在哪的。指针很难学纯粹是因为设计时期采用了一个令人迷惑的抽象才造成了这种现象。观察一下其它的高级语言,大多数用“引用”这个概念去对变量的地址进行抽象。这个概念真的要比“指针”准确得太多,所以很少见到有人会说引用的概念很难理解或很难学。当遇到深浅拷贝的问题的时候也很容易理解复制一个地址跟复制其中的值是两码事。

顺带一提 c++里既有从 c 继承来的指针也有跟其它高级语言无限相近的“引用”概念,题主如果还没学过的话可以猜一下“一个指向引用的指针”应该是个什么东西 のωの
2019-04-26 22:26:18 +08:00
回复了 377163 创建的主题 问与答 郭德纲相声的“荤段子”令人不适吗
这种段子我开始听懂的年龄大概是 3 到 4 年级

10 岁左右


有些更普遍的意象可能在真的理解之前就会熟悉,7 岁左右吧
2019-04-26 20:34:03 +08:00
回复了 Wangjl 创建的主题 C 一段神奇的 C++代码,大家觉得有没有问题?
我在想 new char[2]的那个 p 被 delete 了两次为啥不会崩,1000 次 都没崩
2019-04-26 11:49:47 +08:00
回复了 yidinghe 创建的主题 程序员 开发团队过于讲究年轻化的后果就是管理混乱
楼上几位兄弟都是能直接接替集团一把手的人才,仅仅是钱不够
2019-04-25 17:03:43 +08:00
回复了 Leslie5205912 创建的主题 求职 大二暑假想找实习有公司收留吗
@Leslie5205912
你觉得如果面试被问到这个问题,你的回答是加分还是减分?

STL 作为一个 template library,里面有相当多的 traits,这是我很感兴趣的地方,最近刚看的代码来自 std::variant,就复制一段光标停在的地方吧:

https://pastebin.ubuntu.com/p/bJhC7xBJ4R/

光靠 meta programing 能把一个类的虚表结构 trait 出来,如果你说“不好奇是因为能用自己的笨办法实现”,你猜别人会怎么想?




另外我讲这个故事+这个问题讲的实际上是同一个事,你可能没 get 到点
2019-04-25 15:11:12 +08:00
回复了 Leslie5205912 创建的主题 求职 大二暑假想找实习有公司收留吗
点进来几次又出去了不知道回啥

讲一个故事问一个问题吧


刚毕业的时候有个小公司的面试人员( java )看着我 android 重力感应小游戏和 c++撸的 c/s 控制台游戏的项目经历说……啊你啥项目经历也没有啊,来我们这怕不是要从 0 开始,而且我也不懂 c++没啥可聊的,你直接说你期望多少吧,如果能在公司至少呆 3 到 5 年的话我再考虑考虑






你觉得 STL 里最值得看或者最经常好奇的实现是哪些部分?
2019-04-25 13:23:56 +08:00
回复了 14zdp 创建的主题 奇思妙想 小的时候脑洞大,长大了脑洞变小
讲个耿耿于怀到现在的例子

小时候看的心灵鸡汤,说“长大了创造力下降”的,故事大概是在小学黑板上画一个圆问这是什么,有回答苹果的,硬币的,太阳的,轮子的…… 然后在一所大学测试了同样一个问题,所有的人都回答这是一个圆



真实情况是 —— 你们都没看过那些 仿 pokemon “猜猜这是谁” 的沙雕图?????
2019-04-25 13:20:39 +08:00
回复了 14zdp 创建的主题 奇思妙想 小的时候脑洞大,长大了脑洞变小
我咋觉得沙雕网友脑洞只比小时候更大不可能小呢

看看各种表情包、图、鬼畜
或者阴谋论、键盘议政、弹幕科学家


居然觉得脑洞小了,恕我半分都无法赞同
@whwq2012 因为我看到过很多视频都是让人皱眉头赶紧点出去的那种,所以才有的这个想法。


@RyougiShiki 突然想起来有个老电气工程师做的系列是他嘛,我印象很深的某集是拆过一个上古的充氮气的硬盘,还有一集是搬出过一个忘记多少钱反正死贵的示波器展示 usb3 协议的
2019-04-22 14:15:14 +08:00
回复了 RicardoY 创建的主题 问与答 请问这两段关于 vector 的代码为什么运行时间相差甚大
补充一句 STL 的经验谈:

如果你发现某个 STL 容器效率很低,一定是频繁申请释放空间导致的,不要用 STL 的队列或者链表作为高速缓存,除非在使用 c++17 的 pmr allocator 并且你会写基于内存池的 allocator
2019-04-22 14:08:30 +08:00
回复了 RicardoY 创建的主题 问与答 请问这两段关于 vector 的代码为什么运行时间相差甚大
拿 clion 的 profiler 跑一下就能很直观地看到差异了

我这边的结果是,

第二种方式 97%的时间花在了一个叫__push_back_slow_path 的过程,这个过程包含了构造,这其中又有 79%的时间完全是在调用 operator new

与之相比,第一种方式仅有非常少量的__push_back_slow_path,推测是扩容时真正的 push_back,而其余所有的 push 都被优化成了 emplace new,只能看到 rand 函数的调用
@hlwjia 不是编程视频这种定位,而是更宽泛一些的

科普视频有个共同点就是只会告诉观众主题大概是个什么东西,有什么用,而不会讲太细主题怎么实现的。


我可以举些例子比如

“如何制造一个打赢 TI 冠军的 AI ” —— 实际上是借 AI 蹭个热度,主题是科普传统游戏 AI 用的状态机模型
“如何创造一个独一无二的老婆” —— 科普一下 GAN,干货时间可以现场炼点丹
—— 上面这些类似于杂谈科普

更细致和专业一点的比如
“怎么写代码才能把电脑吃炸” —— 科普现代编程语言的垃圾回收,以及非 GC 实现用到的智能指针等
—— 对标 3B1B 那种更数学的数学科普
2019-04-22 10:53:34 +08:00
回复了 Hallelu 创建的主题 问与答 苹果网易云音乐文件能导出吗?
@Hallelu 没在 mac 下面下过版权音乐,但 win 下面首先突破账号限制是做不到的,版权音乐只能从开了会员的账号下下来,然后下下来的是个私有加密的格式(.ncm ),ncmdump 那个 project 的目的就是把原有音频文件从 ncm 中解压出来,相当于提取出无版权保护的原始音频。

不知道你说的导出具体期望是啥,如果是将歌单导入其它平台,那各音乐平台(说是“各”其实我只知道且用过 qq 音乐的)会提供导入工具,按名字搜索它自己的曲库然后重建歌单。如果是想导出音频文件,那直接下载就好了,唯一会遇到的问题就是版权保护的私有格式,用上面提到的 ncmdump 解决
2019-04-22 10:46:31 +08:00
回复了 snable 创建的主题 问与答 请教如何设计软件比赛的软件环境?
黑客马拉松其实有很多作品确实是半成品拿去打比赛的

建议采用半命题的赛制。当初在校的时候有个华为搞的软件赛是每组实现一个玩德州扑克的 AI,评分的时候各组 AI 互打。像这种半命题形式我觉得比较合适。比如指定必须要用到的硬件设备(蓝牙摄像头什么的),指定交题对接的接口定义(比如游戏 AI 的操作接口),甚至还可以提供初始文件和 git 目录以便跟踪选手代码更改记录。



其实限制开发环境对开发赛来说根本就没啥意义,比赛的关键前提是公平性,而限不限制开发环境根本不影响公平,不如说限制环境提高了获取额外资源的门槛,反而可能带来公平性问题。

偷偷透露一下,线下赛,你想阻止选手连接外网是不可能的,不如说这种做法反而完全偏向了实力较强的队伍让起跑线更加不统一而已。线下赛有些选手带来的无线电设备甚至能隔着两栋楼组局域网,更别说连上外网了。
1 ... 112  113  114  115  116  117  118  119  120  121 ... 149  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2612 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 10:17 · PVG 18:17 · LAX 02:17 · JFK 05:17
Developed with CodeLauncher
♥ Do have faith in what you're doing.