分享

c指针声明时星号在前与在后的理解误区-有陷阱

 GLL_ 2018-04-05
在c语言中,先定义了类型,后有的标识符,这些标识符组成的表达式,用于产生基本类型的变量
​例如 int *a;
​这条语句表示*a表达式产生的结果类型int ,知道*操作符的作用是间接访问操作,就可以知道a是指向int 的指针。
​c语言其实是很自由的语言。
​知道编译机制,编译器编译时会将代码中的空格去除掉,链接最后转成二进制机器码,让机器可以识别
​所以有下面这种定义形式 
​int* a;
​可以看到这样比上面那个更清晰更容易看懂,a被声明为类型为int*类型的指针。但这并不是个好技巧。你可以看看下面这个定义。
​int* a, b, c;
​你可以看到认为定义了a,b,c都是int*类型的指针。但是这样理解是错误的
​这个定义只仅仅定义了a是int*类型的指针变量。很意外吧
​正确的定义形式是这样的
​int *a, *b, *c;
​这个才真正定义a,b,c都为int*类型的指针。所以那样定义就是个陷阱。以后要多注意

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    来自: GLL_ > 《c》

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多