码迷,mamicode.com
首页 > 其他好文 > 详细

副本机制

时间:2014-11-27 21:43:13      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   sp   on   

1.首先说一下函数的副本机制

看一段简单的代码

bubuko.com,布布扣
 1 # include<stdio.h>
 2 # include<stdlib.h>
 3 
 4 int add(int n, int m)
 5 {
 6     int z = n + m;
 7     return z;
 8 }
 9 
10 int main()
11 {
12     printf("%d\n", add(1, 2));
13 }
View Code

当函数返回后,内存已经回收,仍能打印值,这是因为函数的副本机制

2.结构的有副本

bubuko.com,布布扣
 1 # include<stdio.h>
 2 # include<stdlib.h>
 3 
 4 struct myStruct
 5 {
 6     int a[5];
 7     int n;
 8 };
 9 
10 void change(struct myStruct my1)
11 {
12     my1.n = 0;
13     my1.a[0] = 1000;
14     printf("%d\n", &my1);
15 }
16 
17 int main1()
18 {
19     struct myStruct my1 = { { 1, 2, 3, 4, 5 }, 100 };
20     printf("%d,%d\n", my1.a[0], my1.n);
21     printf("%d\n", &my1);
22     change(my1);
23     printf("%d,%d\n", my1.a[0], my1.n);
24     system("pause");
25 }
View Code

结果:(可以发现没有改变,地址不同)

bubuko.com,布布扣

 

结论:

1.除了数组没有副本机制,其他都有副本机制

2.结构体有副本机制

3.结构体中就算有数组,也有副本机制

4.结构体数组,单个有副本机制

 

副本机制

标签:style   blog   http   io   ar   color   os   sp   on   

原文地址:http://www.cnblogs.com/sxmcACM/p/4127114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!