为什么scanf不需要字符串的&符号,也适用于printf(在C中)?

前端之家收集整理的这篇文章主要介绍了为什么scanf不需要字符串的&符号,也适用于printf(在C中)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_1@我现在正在学习C中的字符串.

如何使用scanf获取你可以做的字符串

scanf("%s",str1);

而对于printf你可以做到

printf("The string is %s\n",str1);

我理解,对于scanf来说,这是因为字符串只是一个字符数组,它是一个指针,但是对于printf,你怎么能像输入int或float一样放置变量名?

解决方法

scanf需要读入变量的地址,字符串缓冲区已经表示为地址(指向内存中某个位置的指针,或者分解为指针的数组).

printf也是这样,将%s视为指向字符串的指针.

猜你在找的C&C++相关文章