【发布时间】:2017-03-08 03:39:02
【问题描述】:
我正在准备期中考试,但在理解某个概念时遇到了一些困难。问题来了:
以下代码行的输出是什么:
char S1[50] = "jack", S2[50] = "jill", S3[50], *Sptr;
printf("%c$s\n", toupper(S1[0]), &S1[1]);
输出是
Jack
我不明白,为什么要打印“Jack”。 %s 应该打印一个字符串,对吗? &S1[1] 是字符串吗?我以为是S1[1]的地址。不是这样吗?
感谢您的帮助。
【问题讨论】:
-
我相信你的意思是
%c%s\n。您的原始代码中有这个错字吗? -
%s的参数是指向字符串第一个字符的指针。 S1[1]的地址就是这样。
标签: c string pointers memory-address