我甚至无法猜测我们如何获得给定的输出。我可以请一些解释吗?还有,尝试类似问题的短暂而快速的资源?
void main()
{
struct a
{
char ch[10];
char *str;
};
struct a s1={"Hyderabad","Bangalore"};
printf("\n%c%c",s1.ch[0],*s1.str);
printf("\n%s%s",s1.ch,s1.str);
getch();
}
Ans:HB,HyderabadBangalore
答案 0 :(得分:1)
struct a s1={"Hyderabad","Bangalore"};
将“Hyderabad”分配给ch
,将“Bangalore”分配给str
。
printf("\n%c%c",s1.ch[0],*s1.str);
打印字符串的第一个字符。由于ch
是一个数组,ch[0]
代表它的第一个字符。由于str
是一个字符指针,因此它指向字符串的第一个字符。因此,*s1.str
将具有值'B'
printf("\n%s%s",s1.ch,s1.str);
只打印两个字符串的所有字符。
从根本上说,ch
等于&ch[0]
,即数组中第一个字符的地址。并且,str是指针变量,它保存字符串文字“班加罗尔”的第一个字符的地址。
答案 1 :(得分:0)
%c
仅适用于单个字符。例H.
$s
用于字符串。示例海得拉巴。
s1.ch[0]
指向String ch的第一个字符 - > H
*s1.str
是一个指针。它指向存储在str地址的值。它将是 - > B
因此,您得到HB
\n
表示新行(如java中所示)。
答案 2 :(得分:0)
根据要求的问题,这是您的输出
button