# C语言中函数参数传递的问题

C语言中函数参数传递的问题

今天在学习C语言文件操作的时候发现了一个问题,就是函数读取文件的时候形参的问题

char *fgets( char *buf, int n, FILE *fp );

因为我们需要输出的是一个字符串,所以返回的自然就是char类型的指针了,也等同于char数组,因为C语言中的字符串底层的本质上也就是一个char类型的数组,同时数组的数据结构也是顺序的占用内存地址,所以也可以说是指针。这次让我烦恼的就是形参的问题了,由于主要是学习JAVA,C语言几乎忘得差不多了。如上所示的这个函数形参,在初学语言的时候,都是以为形参要什么类型,我们就给它什么类型,确实也可以这么说,但是很多时候却不是这样的。


上面函数的第一个参数是需要传递一个char类型的指针,实际上也就是char类型的数组,因为C语言不像Java一样是可以直接传递数组的,C语言在传递char类型的数组的时候,实际上在传递过程中就已经把char类型的数组退化为了char类型的指针,所以C语言的形参才变成了指针。


这个其实跟JAVA的继承有所相似,毕竟面向对象里所有的子类都会继承一个祖宗类Object,父接口可以引用子接口,指针即地址,地位就好比面向对象中的类(引用类型),如果理解了面向对象,这里的问题就迎刃而解了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值