c++ - 解释程序的输出
问题描述
你能帮我解释一下以下程序的输出吗:
#include<stdio.h>
int main()
{
char *str;
str = "%s";
printf(str, "Hello K\n");
getchar();
return 0;
}
输出:
Hello K
我的解释:
该语句printf(str, "Hello K\n");
被替换为printf("%s" , "Hello K\n");
,因此输出为Hello K
。这个对吗?
解决方案
对,那是正确的。
str
是一个变量,它代表可以使用字符串文字实现的功能。
但是,请注意它应该是const char*
- 这const
很重要,因为它确保您不会尝试修改字符串文字的内容(非法!)。由于 C++11,这是由语言强制执行的,尽管我相信 GCC 和 Clang 仍然只是不幸地发出警告。
推荐阅读
- c# - 使用字符串为 DataGridComboBoxColumn 项目添加前缀
- android - 带有分页的实时插入的 Firebase 集合适配器
- visual-studio-2019 - Visual Studio 更新是否会破坏 iText7?
- git - Git diff 补丁在 git apply 失败
- c# - 为什么我的关键对象被特殊字符包裹
- javascript - SyntaxError:JSON.parse 处的 JSON 输入意外结束(
) - java - 如何在 onBindViewHolder 方法中管理字符串数组?
- java - Spring Bean 根据条件创建一个接口
- c# - 如何在 startup.cs 之外实现依赖注入
- powershell - 将 PSCustomObject 参数作为输入传递给不同模块中定义的函数