C语言副本机制

1.除了数组外,其他都有副本机制(包括结构体数组)

2.结构体作为参数具有副本机制,结构体返回值也有副本机制 。

3.函数的参数和返回值都有他的副本机制。

#include<stdio.h>
int a=10,b=20;
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=100;
    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[2]={10,20};
static int arr(int arra[2]){
    printf("\nthe array is 0x%p,%d",arra,arra[0]);
    arra[0]=123;
    return arra[0]+arra[1];
}
int main(){
    arr(array);
    printf("\nthe array is 0x%p,%d",array,array[0]);
    return 0;
}

形参arra传入的是array的实际地址。

#include<stdio.h>
typedef struct{
    int ar[10];
    int a;
}Struct;

Struct my;
static void fuzhif(Struct mystruct){
    mystruct.a=10;
    mystruct.ar[0]=0;
    printf("\nthe mystruct address is:0x%p,ar address is:0x%p,%d,%d",&mystruct,mystruct.ar,mystruct.a,mystruct.ar[0]);
}

int main(){
    my.a=100;
    my.ar[0]=100;
    printf("\nthe my address is:0x%p,ar address is:0x%p,%d,%d",&my,my.ar,my.a,my.ar[0]);
    fuzhif(my);
    printf("\nthe my address is:0x%p,ar address is:0x%p,%d,%d",&my,my.ar,my.a,my.ar[0]);
    return 0;
}

形参mystruct传入的是结构体my的地址的拷贝。
#include<stdio.h>
typedef struct{
    int ar[10];
    int a;
}Struct;

Struct my;

static void fuzhit(Struct *mystruct){
    mystruct->a=10;
    mystruct->ar[0]=0;
    printf("\nthe mystruct address is 0x%p,ar address is:0x%p,%d,%d",mystruct,mystruct->ar,mystruct->a,mystruct->ar[0]);
}

int main(){
    my.a=100;
    my.ar[0]=100;
    printf("\nthe my address is:0x%p,ar address is:0x%p,%d,%d",&my,my.ar,my.a,my.ar[0]);
    fuzhit(&my);
    printf("\nthe my address is:0x%p,ar address is:0x%p,%d,%d",&my,my.ar,my.a,my.ar[0]);
    return 0;
}

如果形参为结构体变量,那么可以通过结构体指针修改某一结构体变量的值。

原文地址:https://www.cnblogs.com/ligei/p/11363626.html

时间: 2024-10-11 23:41:48

C语言副本机制的相关文章

HDFS副本机制&amp;负载均衡&amp;机架感知&amp;访问方式&amp;健壮性&amp;删除恢复机制&amp;HDFS缺点

副本机制 1.副本摆放策略 第一副本:放置在上传文件的DataNode上:如果是集群外提交,则随机挑选一台磁盘不太慢.CPU不太忙的节点上:第二副本:放置在于第一个副本不同的机架的节点上:第三副本:与第二个副本相同机架的不同节点上:如果还有更多的副本:随机放在节点中: 2.副本系数 1)对于上传文件到HDFS时,当时hadoop的副本系数是几,那么这个文件的块副本数就有几份,无论以后怎么更改系统副本系数,这个文件的副本数都不会改变,也就是说上传到HDFS系统的文件副本数是由当时的系统副本数决定的

[转]易语言消息机制分析(消息拦截原理)

标 题: [原创]易语言消息机制分析(消息拦截原理)作 者: 红绡枫叶时 间: 2014-12-17,12:41:44链 接: http://bbs.pediy.com/showthread.php?t=195626 我自己做了个易语言的sig签名,方便分析的时候用.易语言例子是静态编译的.版本 5.11易语言其实是基于mfc的,它依然需要mfc的消息派发机制,只不过,自己当了系统与用户间的代理人.所有的消息都要经它转发而已.我在MFC的消息派发函数_AfxDispatchCmdMsg下断点,总

java语言安全机制浅析

java通过所谓的沙箱安全模型保证了其安全性,下面我们就来看看java提供的安全沙箱机制. 组成沙箱的基本组件如下: 1.类装载器结构: 2.class文件检验器: 3.内置于java虚拟机(及语言)的安全特性: 4.安全管理器及java API. 一.类装载器体系结构 1.防止恶意代码去干涉善意的代码. 这是通过为不同类加载器提供不同的命名空间来实现的,在java虚拟机中,在同一个命名空间内的类可以直接进行交互,而不同的命名空间中类甚至不能觉察彼此的存在,除非显式地提供允许它们交互的机制. 2

关于副本机制

转自:http://www.cnblogs.com/sxmcACM/p/4127114.html 1.首先说一下函数的副本机制 看一段简单的代码 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

副本机制

1.首先说一下函数的副本机制 看一段简单的代码 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 } 当函数返回后,内存已经回收,仍能打印值,这是因为函数的副本机制 2.结构的有副本 1 # in

kafka副本机制之数据可靠性

一.概述 为了提升集群的HA,Kafka从0.8版本开始引入了副本(Replica)机制,增加副本机制后,每个副本可以有多个副本,针对每个分区,都会从副本集(Assigned Replica,AR)中,选取一个副本作为Leader副本,所有读写请求都由Leader副本处理,其余的副本被称为Follwer副本,其会从Leader副本拉取消息更新到本地.因此,Follower更像是Leader的热备. 一般情况下,同一个分区的多个副本会被均匀的分配到集群中的不同Broker上,当leader副本所在

使用指针做形参来解决函数的副本机制

/*在函数里面改变一个外部变量,就需要变量的地址 如果是数据,需要指向数据的指针存储数据的地址 如果是指针,就需要指向指针的指针存储指针的地址 //二级指针一般用于改变一个字符串指针的指向,指向不同的字符串 */ #include<stdio.h> #include<stdlib.h> char str1[20] = "notepad";char str2[20] = "tasklist";/*   把这两个字符数组作为全局变量 */ //

大数据:Hadoop(HDFS 的设计思路、设计目标、架构、副本机制、副本存放策略)

一.HDFS 的设计思路 1)思路 切分数据,并进行多副本存储: 2)如果文件只以多副本进行存储,而不进行切分,会有什么问题 缺点 不管文件多大,都存储在一个节点上,在进行数据处理的时候很难进行并行处理,节点可能成为网络瓶颈,很难进行大数据的处理: 存储负载很难均衡,每个节点的利用率很低: 二.HDFS 的设计目标 Hadoop Distributed File System(HDFS):源于Google 的 GFS 论文: 设计目标 分布式存储:根据需要,水平横向增加节点: 运行在普通廉价的硬

Kafka副本机制

一.什么是副本机制: 通常是指分布式系统在多台网络互联的机器上保存有相同的数据拷贝 二.副本机制的好处: 1.提供数据冗余 系统部分组件失效,系统依然能够继续运转,因而增加了整体可用性以及数据持久性 2.提供高伸缩性 支持横向扩展,能够通过增加机器的方式来提升读性能,进而提高读操作吞吐量 3.改善数据局部性 允许将数据放入与用户地理位置相近的地方,从而降低系统延时. 三.kafka的副本 1.本质就是一个只能追加写消息的日志文件 2.同一个分区下的所有副本保存有相同的消息序列 3.副本分散保存在