我刚接触C编程,因为我刚开始学习编程。我在看下面的程序 -
main( )
{
printf ( 5 + "Good Morning " ) ;
}
我发现上述程序的输出是Morning
。通过简单的计算看起来,它跳过了5个字符。但我在想为什么它会跳过前五个字符?
有人能详细解释一下这个程序吗?谢谢你的帮助。
答案 0 :(得分:4)
这称为指针算法。
字符串文字"Good Morning"
存储在内存中,当您使用它时,您将获得指向第一个字符的指针。将5添加到该值会在字符串中指定五个字符。
printf
函数看到的所有内容都是一个指针char const * fmt
,所以你可以给它任何你想要的东西......但你需要确保你的程序可以使用你的内存该地址,并指向以null结尾的字符数组。
答案 1 :(得分:0)
"Good Morning "
是const char*
。它是一个指针 - 一个内存位置 - 放置此字符串。 “早安”+5是指向此位置后的5个地方的指针。 +
是对称的,因此"Good Morning " + 5
等于5 + "Good Morning "
。