首页 > 其他分享 >值传递与地址传递的区别

值传递与地址传递的区别

时间:2023-06-09 21:33:18浏览次数:37  
标签:char 区别 传递 地址 数组 printf 2d original loop

值传递与地址传递的区别

#include <stdio.h>
int ArrayCopy(char* ori, char* cop, char Length)
{  
    char loop;
    for(loop = 0; loop < Length; loop++) 
    {
        *cop++ = *ori++;
    } 
    return 0;
}
int main() 
{
    char original[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
    char *copiedOne=original;
    char copiedTwo[10];
    char loop;
    char Length;
    Length = sizeof(original);
    printf("元素数组 -> 拷贝后的数组 \n");
    for(loop = 0; loop < sizeof(original); loop++) 
    {
        printf("   %2d        %2d\n", original[loop], copiedOne[loop]);
    }
    ArrayCopy(original,copiedTwo, Length);
    copiedTwo[9] = 20;
    printf("值传递:\n");
    printf("值传递更改数据后,只有拷贝的数组中的元素被更改: \n");
    printf("元素数组 -> 拷贝后的数组 \n");
    for(loop = 0; loop < sizeof(original); loop++) 
    {
        printf("   %2d        %2d\n", original[loop], copiedTwo[loop]);
    }
    copiedOne[9] = 50;
    printf("地址传递:\n");
    printf("地址传递更改数据后,原数组元素与拷贝的数组中的元素同时被更改: \n");
    printf("元素数组 -> 拷贝后的数组 \n");
    for(loop = 0; loop < sizeof(original); loop++) 
    {
        printf("   %2d        %2d\n", original[loop], copiedOne[loop]);
    }
    return 0;
}

标签:char,区别,传递,地址,数组,printf,2d,original,loop
From: https://www.cnblogs.com/yesiming/p/17470190.html

相关文章

  • 小议Python列表和元组中的元素地址连续性
    众所周知,在Python中字典和集合依赖元素哈希表来存储,并不存在传统意义上的所谓元素“顺序”,当然,如果需要一个有序的字典可以使用collections模块提供的OrderedDict类。在Python中,列表和元组属于有序序列,支持下标随机访问,也支持切片操作。当然,列表是可变序列而元组属于不可变序列,这一......
  • Python中直接查看对象值和使用print()输出的区别
    直接用代码来描述这个问题的现象:>>>x=r'C:\windows\notepad.exe'>>>x'C:\\windows\\notepad.exe'>>>print(x)C:\windows\notepad.exe>>>x='''Tomsaid,"Let'sgo."'......
  • Python运算符is与==的区别
    在Python中,关系运算符==用来测试两个对象的值是否相等,而同一性测试运算符is用来测试两个对象是否是同一个对象,如果两个变量是同一个对象,那么它们的内存地址是一样的,当然它们的值肯定也是一样的。并且,如果两个变量是同一个列表或其他类型的可变序列,在某些操作中通过一个变量可以影响......
  • Python使用正则表达式检查合法IP地址
    问题描述:函数main()接收一个任意字符串s作为参数,要求使用正则表达式检查字符串s是否为有效的IPv4地址,也就是由3个圆点分隔的4组十进制数且每组十进制数都介于区间[0,255]。如果字符串s符合要求就返回True,否则返回False。例如,main('0.0.0.0')返回True,main('119.189.876.0')返回False......
  • JS默认参数传递额外参数(多文件上传, uploading)
    <!--modulename:应用介绍--><template><divclass="main-intro":style="{padding:props.type==='serviceType'?'0':'016px',margin:props.type==='serviceType�......
  • 解析隧道代理IP与API代理IP的区别
    隧道代理IP和API代理IP是两种常见的代理IP类型,它们在实现方式和使用场景上有一些区别。第一部分:隧道代理IP的特点和用途隧道代理IP:隧道代理IP(TunnelProxyIP)是通过在客户端和目标服务器之间建立一个隧道连接来实现代理的。具体来说,隧道代理IP会在客户端和目标服务器之间扮演中间人......
  • JDK 动态代理 和 CGLIB 动态代理 的区别【SpringAOP】
    一、原理区别(版本一)Java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认......
  • django form data如何传递到template的vue
    参考:https://docs.djangoproject.com/en/4.2/ref/templates/builtins/#json-scriptafelyoutputsaPythonobjectasJSON,wrappedina<script>tag,readyforusewithJavaScript.Argument:TheoptionalHTML“id”ofthe<script>tag.Forexample......
  • 基于网卡地址做设备指纹的优缺点
    生成设备指纹的目的是为了能唯一地标识设备,而且这个标识在设备的生命周期内保持稳定。因此,在选择设备特征时,通常需要考虑这些特征的唯一性和稳定性。软件及配置信息一版不适合,是因为这类变化虽然不大,但万一变化后,设备指纹会变,影响使用。比如:操作系统信息:操作系统版本、安装日......
  • VMware克隆虚拟机后修改UUID、MAC地址、IP和主机名
    VMware克隆虚拟机后修改UUID、MAC地址、IP和主机名https://blog.csdn.net/weixin_44657888/article/details/130679813 --------------------------------------------------------设置静态ipcat/etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD......