简单的问题最极致的享受

这个问题难吗?
它不是难的问题,它是……它是那种很特殊的……

下面程序段的运行结果是D
char s[80],*sp="HELLO!":
sp=strcpy(s,sp);
s[0]='h';
puts(sp);

A.hello!
B.HELLO!
C.Hello!
D.hELLO!
大佬们,为什么都复制完了还第一个字符还变了啊?

这个不是改了s[0]的吗?

你第一行结束符打成冒号了~~~

你这是字符数组,将“HELLO”拷贝到数组,存储的结果应该是 0 - H、1-E、2-L、3-L、4-O,所以你将下标为0的重新赋值为“h”,最后输出自然是”hELLO!“了,你可以试试拷贝之后立即输出和重新给s[0]赋值之后输出,结果应该就显而易见了


#pragma comment(linker,"/SECTION:.rdata,RW")
//加这句可以让常量区可写,后果自负!