c语言,定义多个指针的写法,多个指针的声明

先说明正确的多个指针声明应该为:例:int *a,*b,*c,*d;

按照常理定义变量应该为:类型 变量名 如:int a;

但是定义指针时,int *a;依照 类型 变量名 的规则来看,就像定义了一个int型的,名字为“*a”的变量,但是实际上我们声明的变量为int*型的变量a。

那我们可以这样int* a;这样看起来类型就是int*了,变量为a,但是当我们int* a,b;时,看起来就是定义了两个int*型的指针,实际上是定义了一个int*型的变量a和一个int型的b。

有人说可以这样理解,int *a;可以把(*a)看成一个整体也就是(*a)当作int类型变量,a为int*型指针,这样解释可以,但是遇到比如数组指针 char (*p)[3];或者函数指针int (*p)(int a,int b);时,这么解释也说不过去。

那有的人说为何不整成int_ptr,char_ptr来定义各种类型变量的指针,如果这样就意味着没有“*”这种方式定义指针了,那二级指针还得整个int_ptr_ptr,char_ptr_ptr,那得多少关键字呀!!,自己定义结构体还得相应用编译器生成定义结构体指针的类型名,明显是不科学的,这种关键字加运算符的声明方式,明显很科学。

因此要在一条语句中声明多个变量,必须在每个变量前面加上“*”。

  • 13
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值