回复 10楼 TonyDeng
是的,最近在学数组这块,因为写这个例程时想到会不会数组连接时strcat(str1,str2),str2数据并没有正真写入str1,而是将连接后的数据存入另外一个数组,并返回这个数组的地址。不过现在想想,应该是不可能的,数组都要定义并声明大小,编译器不会自动生成一个大小刚好吻合的数组用来存放连接后的数据。
#include <stdio.h> #include <string.h> int main () { char str2[] = "ok?"; char str3[] = "haha"; char str1[] = "Are you "; int a; printf("%p, %p, %p\n", str2, str3, str1); printf("%p, %p, %p, %p\n", &str2[0], &str2[1], &str2[2], &str2[3]); a = strcmp(str1, str2); strcat (str2, str1); printf("%s\n", str1); printf("%s\n", str2); printf("%s\n", str3); printf("%c\n", str1[10]); printf("%d\n", a); return 0; }