C语言函数声明中*parameter和* parameter两种写法有什么区别?
C语言
GetIntArray函数参数相关疑问解答 1 int *outputArray和int *count的作用是否相同
二者在类型属性上一致,都是int类型的指针参数,设计上均属于输出型参数:C语言函数默认只能通过return返回一个值,当需要返回多组结果时,就可以传入指针,函数内部直接修改指针指向的内存内容,就能把结果带出函数作用域,不需要依赖返回值。
但二者的实际业务用途完全不同:
outputArray指向预先申请好的int数组的首地址,GetIntArray函数运行时会把生成的整数序列写入这块内存区域count指向单个int变量的地址,GetIntArray运行结束后会把实际写入数组的有效元素个数存入这个变量对应的内存,方便调用方后续遍历数组时使用
2 *和count之间的空格是否会带来功能差异
不会有任何功能差异。C语言编译器在词法分析阶段会自动忽略关键字、运算符、标识符之间的所有空白字符(空格、制表符、换行符都属于空白字符),以下三种写法的语义完全一致,编译生成的可执行程序没有任何区别:
int *countint * countint*count
不同写法仅仅是代码风格的区别:
- 写
int* count的开发者更偏向强调int*是一个完整的int指针类型 - 写
int *count的开发者更偏向强调*和变量绑定,声明时的*代表该变量是指针类型
两种风格都符合C语言语法规范,只要在同一个项目中保持统一即可。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

