char形指针与函数形参

 

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

加入printf后的程序如下:

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

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

运行程序后如图:

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

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

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页