c语言选择题,这个为什么选A?不懂,跪求大神们讲解!!!!谢谢!!

2025-03-03 18:35:50
推荐回答(1个)
回答1:

p=q使得p和q指向同一个内存起始位置。在scanf的时候,先到输入缓冲区读字符串,到空格为止,首先读到了abc,然后从p指向的内存起始位置开始,将abc依次填入,(再加上'\0') ,然后继续读,读到了def,然后从q指向的内存起始位置开始,将def依次填入,(再加上'\0') ,由于p和q指向的位置相同,且abc和def长度相同,所以原来读入的abc被后来的def完全覆盖,内存里只有def和\0, 所以在printf的时候,(从指针指的起始位置开始,逐个输出直到 '\0' )又由于p和q指的位置相同,所以输出也相同,即都是def