printf() 中可以有“+”运算符吗?

问题描述 投票:0回答:1
void main(){
    char str1[10] = "Hello", str2[10] = "World";
    printf(5 + "Good Morning\n");
}

以上代码输出:

早上

我不明白为什么。

c string pointers printf
1个回答
6
投票

数组

"Good Morning\n"
(类型
char[14]
)在与整数相加的情况下,被转换为指向其第一个元素(
'G'
)的指针。

该指针增加 5,因此指向

'M'

 早上好

    0 1 2 3 4 5 6 ...

printf()
接收字符串
"Morning\n"
作为格式字符串。因为没有
%
,所以直接打印就可以了

© www.soinside.com 2019 - 2024. All rights reserved.