C语言中,"int* a, b, c;" 是正确写法吗?

来源:互联网 发布:技术总监 知乎 编辑:程序博客网 时间:2024/06/04 20:09

有以下的C语言代码

int* a, b, c;int *a, *b, *c;int *a, b, c;

其中哪些语句是等价的?
哪些语句又是指针的正确写法?

对于这些问题,相信一开始学习指针的同学都有些迷惑,现在来剖析一下它们吧
很多人喜欢用第一种写法定义指针 int*, char*…理解为int型指针、char型指针这样理解不错,但是写法却是不规范的
int * a, b, c; 的实际含义是:创建一个int型指针a和两个int型变量b,c, 并不是有些人些这个语句的初衷。
而第二个语句
int *a, *b, *c;的意思是:创建三个int型指针 a,b,c
第三个语句
int *a, b, c;的意思和 第一个相同

参考书籍:《C和指针》