C 语言这种看起来是强类型,但指针指来指去后写起来感觉是弱类型 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
nilrust
V2EX    程序员

C 语言这种看起来是强类型,但指针指来指去后写起来感觉是弱类型

  •  
  •   nilrust 2018-08-28 09:56:16 +08:00 7017 次点击
    这是一个创建于 2630 天前的主题,其中的信息可能已经有所发展或是发生改变。

    变量一律用指针,一路无脑calloc,贼爽!

    41 条回复    2018-08-29 13:16:33 +08:00
    reus
        1
    reus  
       2018-08-28 10:01:29 +08:00
    C 类型约束比较弱
    daryl
        2
    daryl  
       2018-08-28 10:05:58 +08:00   1
    因为不管是什么类型,它们在内存里面的东西都是一样的嘛= =
    myyou
        3
    myyou  
       2018-08-28 10:09:54 +08:00
    c 语言不是就是弱类型语言吗?
    raysonx
        5
    raysonx  
       2018-08-28 10:17:27 +08:00 via Android
    C 通常被划为弱类型语言
    whileFalse
        6
    whileFalse  
       2018-08-28 10:17:40 +08:00   2
    开局一数组,变量全靠 p
    whileFalse
        7
    whileFalse  
       2018-08-28 10:18:16 +08:00
    @baicheng10 403 了
    baicheng10
        8
    baicheng10  
       2018-08-28 10:22:29 +08:00   9

    (找到一张图,作者见水印)
    zwh2698
        9
    zwh2698  
       2018-08-28 10:24:46 +08:00 via Android
    千万不要这么玩,否则你会很后悔!
    kaneyuki
        10
    kaneyuki  
       2018-08-28 10:27:03 +08:00
    面向内存编程
    yulitian888
        11
    yulitian888  
       2018-08-28 10:35:24 +08:00   7
    隔一段时间,等楼主忘了任何一个内存片段的定义的时候,自己就会想把代码重写一遍的
    puga2006
        12
    puga2006  
       2018-08-28 11:02:25 +08:00
    能直接把某一个地址,用一个指针就能表示这个地址的东西,确实很爽
    karllynn
        13
    karllynn  
       2018-08-28 11:12:29 +08:00
    编码规范的意义就是怕你们胡搞
    mm163
        14
    mm163  
       2018-08-28 11:25:43 +08:00
    加上多线程,就彻底死翘翘了。
    学 C,必学编译原理,否则都不知怎么死的。
    kokutou
        15
    kokutou  
       2018-08-28 11:26:58 +08:00
    记得写好注释。。。写详细点。。。
    leido
        16
    leido  
       2018-08-28 11:32:54 +08:00
    所以 C++有了引用就应该彻底删除指针.
    zhzer
        17
    zhzer  
       2018-08-28 11:33:03 +08:00 via Android
    其实都是语法糖就看你吃不吃
    AngelCriss
        18
    AngelCriss  
       2018-08-28 11:38:02 +08:00 via Android
    @leido 你可能没学过 cpp
    abcbuzhiming
        19
    abcbuzhiming  
       2018-08-28 11:40:50 +08:00
    C 和 CPP 都是划分在弱类型中的,原因是它的变量可以转换类型
    ayyll
        20
    ayyll  
       2018-08-28 11:41:53 +08:00 via Android
    本来就是弱-静态吧
    SuperMild
        21
    SuperMild  
       2018-08-28 12:08:27 +08:00
    C 语言是现存主流语言中为数不多的典型弱类型语言了。注意,JS、Py 之类的,是动态类型,不是弱类型。JS 可以隐性转换,但转换规则非常明确。
    vincenteof
        22
    vincenteof  
       2018-08-28 14:35:27 +08:00
    类型最大的意义是让问题在编译器期就暴露出来而不是运行的时候,你这种写起来虽然爽,出错了 debug 的时候就痛苦了
    woshiyigeren002
        23
    woshiyigeren002  
       2018-08-28 14:39:32 +08:00
    @baicheng10 图挂了
    jmc891205
        24
    jmc891205  
       2018-08-28 15:54:26 +08:00
    不要乱转类型就好了。。。
    songtianyi
        25
    songtianyi  
       2018-08-28 18:01:55 +08:00
    好像很多人搞不清不同地方说的弱类型是什么意思,其实是翻译的锅
    建议用英文写法来沟通,weekly checked,即部分人所说的弱类型,指的是类型系统在做检查的时候 没有尽可能消除潜在的错误,比如 c 语言允许指针运算。英文当中也有人用 weekly typed,所以翻译过来是弱类型,很多人把它和类型是否可变混淆了。与之相对的是 strongly typed
    weekly typed,类型可变,一般动态语言都是。与之相对的是 strongly typed。
    msg7086
        27
    msg7086  
       2018-08-28 18:05:34 +08:00
    @songtianyi 并不是每星期类型……
    songtianyi
        28
    songtianyi  
       2018-08-28 18:07:47 +08:00
    @msg7086 哈?
    edussx
        29
    edussx  
       2018-08-28 18:26:01 +08:00   2
    请分清:
    动态类型 vs 静态类型
    强类型 vs 弱类型

    这两组概念,C/C++是典型的静态弱类型语言
    oswuhan
        30
    oswuhan  
       2018-08-28 18:43:55 +08:00
    @songtianyi week ( weak )
    PythonAnswer
        31
    PythonAnswer  
       2018-08-28 19:23:35 +08:00 via iPhone
    图上动态语言 一半强类型 一半弱类型啊
    marcushbs
        32
    marcushbs  
       2018-08-28 19:42:49 +08:00
    只要隐性 cast 之后挂了,就是强类型,谁用谁知道
    songtianyi
        33
    songtianyi  
       2018-08-28 20:17:28 +08:00
    @oswuhan 别说了,这个我老手误写错。。
    kzzhr
        34
    kzzhr  
       2018-08-28 20:50:49 +08:00 via Android
    看了 go 之后,看谁都是贼爽的弱类型
    mingyun
        35
    mingyun  
       2018-08-28 23:08:53 +08:00
    @baicheng10 怎么木有 golang
    greatbody
        36
    greatbody  
       2018-08-29 00:26:40 +08:00
    VB 不是弱类型
    wweir
        37
    wweir  
       2018-08-29 08:03:45 +08:00 via Android
    静态类型,弱类型
    NoDocCat
        38
    NoDocCat  
       2018-08-29 10:08:32 +08:00 via Android
    @yulitian888 kpi 这不就上来了吗?(逃
    liuzhedash
        39
    liuzhedash  
       2018-08-29 10:36:19 +08:00
    C 语言是典型的:严格立法、普遍违法、选择执法。
    deweixu
        40
    deweixu  
       2018-08-29 11:24:47 +08:00
    指针直接操作内存了
    paw
        41
    paw  
       2018-08-29 13:16:33 +08:00
    喜欢 c 的原因之一:整个用户态空间都是你的,想怎玩都行,当然玩废了也只能怪自己。写内核模块就更爽了,上帝视角的感觉。每个 task 结构都是你的子民,想怎么改就怎么改,当然还是废了自负。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     854 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 22:13 PVG 06:13 LAX 14:13 JFK 17:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86