关于指针的定义格式

关于指针的定义格式

 

两种方式都是对的,编译器都支持。一般编程规范都推荐*号挨着指针变量,为的是避免在一行定义多个指针变量时不小心出错,例如: 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 类型指针。
所以不建议在一个声明中一起写两个以上的变量。。。

关于指针的定义格式

上一篇:网络爬虫第一章


下一篇:qt 设置qtablewidget隔行变色