C语言副本机制
2024-09-23 22:56:18
1.除了数组外,其他都有副本机制(包括结构体数组)
2.结构体作为参数具有副本机制,结构体返回值也有副本机制 。
3.函数的参数和返回值都有他的副本机制。
#include<stdio.h>
int a=,b=;
static int sum(int aa,int bb){
printf("the aa is 0x%p,%d",&aa,aa);
printf("\nthe bb is 0x%p,%d",&bb,bb);
aa=;
return a+b;
}
int main(){
sum(a,b);
printf("\nthe a is 0x%p,%d",&a,a);
printf("\nthe b is 0x%p,%d",&b,b);
}
形参aa和bb是对a和b地址的拷贝。
#include<stdio.h>
int array[]={,};
static int arr(int arra[]){
printf("\nthe array is 0x%p,%d",arra,arra[]);
arra[]=;
return arra[]+arra[];
}
int main(){
arr(array);
printf("\nthe array is 0x%p,%d",array,array[]);
return ;
}
形参arra传入的是array的实际地址。
#include<stdio.h>
typedef struct{
int ar[];
int a;
}Struct; Struct my;
static void fuzhif(Struct mystruct){
mystruct.a=;
mystruct.ar[]=;
printf("\nthe mystruct address is:0x%p,ar address is:0x%p,%d,%d",&mystruct,mystruct.ar,mystruct.a,mystruct.ar[]);
} int main(){
my.a=;
my.ar[]=;
printf("\nthe my address is:0x%p,ar address is:0x%p,%d,%d",&my,my.ar,my.a,my.ar[]);
fuzhif(my);
printf("\nthe my address is:0x%p,ar address is:0x%p,%d,%d",&my,my.ar,my.a,my.ar[]);
return ;
}
形参mystruct传入的是结构体my的地址的拷贝。
#include<stdio.h>
typedef struct{
int ar[];
int a;
}Struct; Struct my; static void fuzhit(Struct *mystruct){
mystruct->a=;
mystruct->ar[]=;
printf("\nthe mystruct address is 0x%p,ar address is:0x%p,%d,%d",mystruct,mystruct->ar,mystruct->a,mystruct->ar[]);
} int main(){
my.a=;
my.ar[]=;
printf("\nthe my address is:0x%p,ar address is:0x%p,%d,%d",&my,my.ar,my.a,my.ar[]);
fuzhit(&my);
printf("\nthe my address is:0x%p,ar address is:0x%p,%d,%d",&my,my.ar,my.a,my.ar[]);
return ;
}
如果形参为结构体变量,那么可以通过结构体指针修改某一结构体变量的值。
最新文章
- linux awk的使用
- 外观模式(Facade Pattern)
- angularjs的一些优化小技巧
- OC语言-02面向对象的三大特性
- Object-C自定义对象NSLog输入信息
- js获取随机颜色
- 使用HAProxy、PHP、Redis和MySQL支撑每周10亿请求
- Android实用代码七段(三)
- Understanding about numerical stability, convergence and consistency
- 让大疆去做测绘---航线规划软件APP
- Win7 访问win2008 远程桌面提示:您的凭证不工作
- ThinkPHP5事务回滚
- ubuntu:如何制作类似jeso的系统?
- CSS3 动画的一些属性
- idea中pom.xml关于oracle配置
- mysql 大表优化
- Python学习札记(三十六) 面向对象编程 Object Oriented Program 7 __slots__
- Linux下which命令使用详解(转)
- Mac 访问隐藏文件方法! 网上方法在我电脑上都不可用!
- IO扩展控件(System.IO.Abstractions)