C++指针与引用

 

#include<iostream>
using namespace std;

void swapfunc(int* p, int* q)
{
	int temp = 0;
	temp = *p;
	*p = *q;
	*q = temp;
}

int main()
{
	//直接访问
	int i = 0;
	cout << "请输入i的值";
	cin >> i;
	cout << "i的地址是:" << &i << endl;
	cout << "你输入的i的值是:" <<i << endl;
	cout << "你输入的i的值是:" <<*( &i) << endl;

	//间接访问
	int* p = NULL;
	int x = 100;
	p = &x;
	cout << "x的地址:" << &x<<endl;
	cout << "p的地址:" << p << endl;
	cout << "p的值是:" << *p << endl;
	
	
	int* q = &x;
	cout << "q的值是:" << *q << endl;


	
	int a = 3, b = 4;
	int* m = &a;
	int* n = &b;
	cout << "a=" << (*m)++<<endl;
	cout << "a=" << a << endl;

	//n++ n向右移了,整体没变
	cout << "n的地址" << n << endl;
	cout << "n+1的地址" << n++ << endl;
	cout << "b=" << *(n++) << endl;
	cout << "b=" << b << endl;

	int c = 5, d = 6;
	swapfunc(&c, &d);
	
	cout << "c的值是:" << c << endl;
	cout << "d的值是:" << d << endl;

	
	int aa[5] = { 1,2,3,4,5 };
	int* pp;
	pp = &aa[0];//等价pp=aa
	cout << "a[0]=" << *pp << endl;
	cout << "a[1]=" << *(pp+1) << endl;
	cout << "通过循环输出数组a元素值:"<<endl;
	for (int i = 0; i < 5; i++)
		cout <<"a["<<i<<"]="<< * (pp + i) << endl;

	return 0;
}

 

 

#include<iostream>
using namespace std;


int main()
{
	int max = 899;
	int& refmax = max;
	cout << "max的地址:" << &max << endl;
	cout << "refmax的地址:" << &refmax << endl;
	cout << "max=" << max << endl;
	cout << "refmax=" << refmax << endl;

	return 0;
}

 

#include<iostream>
using namespace std;


int main()
{
	int& refp = *new int;
	refp = 100;
	cout << refp << endl;
	delete &refp;

	return 0;
}

 

 

 

pr指向不能改变,值可以变

 值不能改变,指向可以改变

 

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猪八戒1.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值