首页 > 解决方案 > 解释程序的输出

问题描述

你能帮我解释一下以下程序的输出吗:

#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。这个对吗?

标签: c++

解决方案


对,那是正确的。

str是一个变量,它代表可以使用字符串文字实现的功能。

但是,请注意它应该是const char*- 这const很重要,因为它确保您不会尝试修改字符串文字的内容(非法!)。由于 C++11,这是由语言强制执行的,尽管我相信 GCC 和 Clang 仍然只是不幸地发出警告。


推荐阅读