文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
怎么把字符串传给函数?
你知道了怎么把一些简单的值以参数的形式传给函数,但如果想传一些更复杂的东西呢?比如字符串。如果你还记得上一章的内容,就知道在 C 语言中字符串其实是字符数组,也就是说如果你想把字符串传给函数,可以这么做:
你把参数
msg 定义为数组,但是因为不知道字符串有多长,所以 msg 没有长度。这似乎很简单,但奇怪的事发生了……
亲爱的,谁截了我们的字符串?
C 语言中有一个叫 sizeof 的运算符,它能告知某样东西在存储器中占多少字节,既可以对数据类型使用,也可以对某条数据使用。
但当你检查传入函数字符串的长度时,离奇的事情发生了:void fortune_cookie(char msg[]){ printf("Message reads: %s\n", msg); printf("msg occupies %i bytes\n", sizeof(msg));}
程序并没有显示字符串总长,而是返回了 4 或 8 个字节。发生了什么事?为什么 fortune_cookie() 认为我们传进来的字符串比实际要短?
脑力风暴
你认为是什么原因导致 sizeof(msg) 小于整个字符串的长度?msg 是什么?为什么在不同的计算机上返回的大小不同?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论