char形指针与函数形参

 

这段程序中可以看到第十行函数的形参是两个指针,一个是const 字符指针,一个是person类型的指针。那对于指针作为形参自然的在调用该函数时应该调用参数的地址。但可以看到这个函数中主函数调用WritrStructToFile这个函数时(38行)传进来的是一个“./test.txt”的字符串。这样的做法是错误的吗?可以对传入的参数作一个验证:将WritrStructToFile的函数下打印一下该参数。既然传进来的是一个字符串,就以字符串的形式打印出来看有否问题。

加入printf后的程序如下:

执行程序后发现编译以及运行没有问题,且还能打印出来传进函数的字符串

那接下来将printf的打印方式更换为地址打印。

运行程序后如图:

就发现打印出来了地址,奇怪的事情发生了,这个函数中的形参path居然能够同时附带字符串以及地址的属性。

那看到这里大概能和数组的性质联想起来,字符串应该也是和数组具有相同的特性,即首个字符代表的是指向这个字符串的地址,当在主函数中调用WritrStructToFile函数传进去的也确实是一个地址,当地址传到WritrStructToFile函数中去后,对path进行的一个打印的工作,就随之存在着这两种情况了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘多拉的面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值