C语言地址传递和引用传递

举报
肥学 发表于 2022/04/12 01:05:45 2022/04/12
【摘要】 值传递就不说了,就是字面意思 #include<iostream> using namespace std; void change(int& n,int m){ pri...

值传递就不说了,就是字面意思

#include<iostream>
using namespace std;
void change(int& n,int m){
	printf("在函数里的地址%d\n",&n);
	printf("在函数里的值%d\n",n);
	n=m;
	m=9;

}

void change2(int* f,int p){
	printf("在函数里的地址%d\n",&f);
	printf("在函数里的值%d\n",f);
	printf("在函数里的对地址取值%d\n",*f);
	*f=p;
	p=9;
}

int main()
{
    int i=1,j=2;
    printf("\n\n引用传递:\n");
	printf("初始地址%d\n",&i);
    change(i,j);
    printf("i=%d,j=%d\n",i,j);
    
    printf("地址传递:\n");
    int a=1,b=2;
    printf("初始地址%d\n",&a);
	change2(&a,b);
	printf("a=%d,b=%d\n",a,b);
	printf("结论:引用传递简单说就是同一个变量操作引用变量就是操作变量自己,地址传递就是把指针变量的值存为传入变量的地址进而对该变量的地址里的数据操作"); 
}

  
 
  • 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
  • 32
  • 33

在这里插入图片描述

特别注意:更大家说一下写引用传递类型和指针的时候千万别写成int &a或者int *p,因为这两个是一个数据类型就像你的char
和int一样要写成int& a,int* p;

文章来源: blog.csdn.net,作者:肥学,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jiahuiandxuehui/article/details/124090483

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。