C语言字符串函数strcat的问题

2024-11-20 10:02:38
推荐回答(2个)
回答1:

strcat(buf,q)执行时候,会把字符串q的内容添加到字符串buf的末尾,由于buf定义为char[64],分配了足够的内存空间,所以不会出错。

strcat(q,buf)执行的时候,程序要去把buf的内容添加到字符串q的后面,但是我们定义的q为char*,q是只想一个固定字符串的指针,这个字符串后面是我们不可预知的其它空间,ctrcat去修改那个空间,可能会引起严重后果、甚至系统崩溃。

回答2:

q = "hello"; // q指针指向常量区,所以不能对q指向的地址的内容进行修改