zoukankan      html  css  js  c++  java
  • 关于指针的定义格式

    关于指针的定义格式

    两种方式都是对的,编译器都支持。一般编程规范都推荐*号挨着指针变量,为的是避免在一行定义多个指针变量时不小心出错,例如: int *p,q; // 这样读起来容易识别q是整形变量不是指针 int* p,q; // 这样比较容易误解p和q都是指针

    screen122014-10-28 08:51:13
     
    比如我们定义一个整型指针:

    int *p;

    星号和p是挨着,与int分离。

    那么可不可以这样定义呢?

    int* p;

    就是星号与int挨着,与p分离。

    这样定义,格式对不对?
    226点赞收藏14
     
     写回复
    14 条回复
     切换为时间正序
    当前发帖距今超过3年,不再开放新的回复
    发表回复
     
    cyd411 社区成员 2014-10-29
    这个是编程规范 你搜下编程规范,那里有讲
     
    call_from_dream 2014-10-29
    *可以:1,紧挨着变量类型,如 int* p; 2,紧挨着变量,如 int *p; 3,两个都不挨着,也是可以滴,如 int * p;
     
    tick_guo 2014-10-29
    引用 5 楼 mujiok2003 的回复:
    加空格只是为了代码便于人阅读, 编译器不需空格。
    恩……,这个重点
     
    Mortred_cp 2014-10-29
    都一样的。。
     
    walter2001 2014-10-28
    两种方式都是对的,编译器都支持。一般编程规范都推荐*号挨着指针变量,为的是避免在一行定义多个指针变量时不小心出错,例如: int *p,q; // 这样读起来容易识别q是整形变量不是指针 int* p,q; // 这样比较容易误解p和q都是指针
     
    追梦浮云 2014-10-28
    这两种情况对于编译器来将是一样的,只是让阅读你代码的人看起来更爽一些。比如 int *p, q; 和 int* p, q; 这两种定义都是p为int类型指针, q为int类型,阅读你代码的人可能会把第二种情况的p和q误解释为int 类型指针。
     
    mujiok2003 2014-10-28
    加空格只是为了代码便于人阅读, 编译器不需空格。
     
    mymtom 社区成员 2014-10-28
    从语法上来说,* 挨着变量是比较容易理解的。 以 int * p; 为例 int 是 type-specifier -> declaration-specifiers *p 是 declarator -> init-declarator -> init-declarator-list 3.5 DECLARATIONS Syntax declaration: declaration-specifiers init-declarator-list<opt> ; declaration-specifiers: storage-class-specifier declaration-specifiers<opt> type-specifier declaration-specifiers<opt> type-qualifier declaration-specifiers<opt> init-declarator-list: init-declarator init-declarator-list , init-declarator init-declarator: declarator declarator = initializer ================ 3.5.2 Type specifiers Syntax type-specifier: void char short int long float double signed unsigned struct-or-union-specifier enum-specifier typedef-name =========================== 3.5.4 Declarators Syntax declarator: pointer<opt> direct-declarator direct-declarator: identifier ( declarator ) direct-declarator [ constant-expression<opt> ] direct-declarator ( parameter-type-list ) direct-declarator ( identifier-list<opt> ) pointer: * type-qualifier-list<opt> * type-qualifier-list<opt> pointer type-qualifier-list: type-qualifier type-qualifier-list type-qualifier parameter-type-list: parameter-list parameter-list , ... parameter-list: parameter-declaration parameter-list , parameter-declaration parameter-declaration: declaration-specifiers declarator declaration-specifiers abstract-declarator<opt> identifier-list: identifier identifier-list , identifier
     
    wpsperson 2014-10-28
    楼上说的都很对!
     
    dbzhang800 社区成员 2014-10-28
    靠哪一个都行了,或者两个都不靠也可以。 但是,如果一行定义多个变量的话,*靠近变量可能更容易理解。 比如下面等价的写法 int *p1, i1; int* p1, i1; 或 int *p1, *p2, i1, i2, *p3, i3; int* p1, * p2, i1, i2, * p2, i3;
     
    buyong 2014-10-28
    两种都对,只是书写不同,编译器认为是一样的
     
    u013224530 社区成员 2014-10-28
    都可以 各种风格而已
     
    arthaslonely 2014-10-28
    引用 6 楼 zhuimengfuyun 的回复:
    这两种情况对于编译器来将是一样的,只是让阅读你代码的人看起来更爽一些。比如 int *p, q; 和 int* p, q; 这两种定义都是p为int类型指针, q为int类型,阅读你代码的人可能会把第二种情况的p和q误解释为int 类型指针。
    所以不建议在一个声明中一起写两个以上的变量。。。
  • 相关阅读:
    sql server 存储过程分隔split
    sql server 存储过程、事务,增删改
    jquery ajax 参数可以序列化
    Pycharm连接gitlab
    gitlab的搭建和linux客户端的连接
    jenkins的搭建和使用
    svn服务器及客户端安装使用
    python2 和python3共存下问题
    Codecademy For Python学习笔记
    类编写的细节
  • 原文地址:https://www.cnblogs.com/chinasoft/p/15222356.html
Copyright © 2011-2022 走看看