
Shallow copy VS. deep copy
计算机是32位的,编译器是dev-cpp。
C源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
struct { char *name1; char name2[20]; }stu; int main() { struct *p; p = &stu; strcpy((*p).name2,"second"); printf("name1 = %s t name2 = %sn",(*p).name1,(*p).name2); p->name1 = "third"; printf("name1 = %s t name2 = %sn",(*p).name1,(*p).name2); char tp[20]="fifth"; strcpy((*p).name2,tp); p->name1 = tp; tp[0]='F'; printf("name1 = %s t name2 = %sn",(*p).name1,(*p).name2); printf("sizeof(char *name) = %dnsizeof(char name[20]) = %dn", sizeof(p->name1), sizeof(p->name2)); system("PAUSE"); return 0; }
|
运行结果为:
1 2 3 4 5
|
name1 = (null) name2 = second name1 = third name2 = second name1 = Fifth name2 = fifth sizeof(char *name) = 4 sizeof(char name[20]) = 20
|
近期评论