当前位置:   article > 正文

C++语法——指针和引用_c++ 引用符&的书写规范

c++ 引用符&的书写规范

C++ 引用和指针类型

一.引用

1.引用类型初始化

引用(reference)为一个对象起了另一个名字
通过type &a=b;的形式定义引用类型。
PS:
引用必须要被初始化,也就是必须要指向一个对象,不能指向常量。
引用并非一个对象,引用是一个对象的“别名”
类型一致:引用的别名类型和原来的对象类型要一致
注意:引用定义和使用的时候&的含义不同

int a1 = 100;
int &y1 = a1;
a1 = 101;
cout << "a1=" << a1 << endl;
cout << "y1=" << y1 << endl;
  • 1
  • 2
  • 3
  • 4
  • 5
2.&符号的作用:获取地址

&符号也叫取地址符、and等等

	int a1 = 100;
	cout << "address of a1=" << &a1 << endl;
  • 1
  • 2

结果:

address of a1=003EFCCC
  • 1

二.指针

指针是一个变量,其值为另一个变量的内存位置的地址。再次强调指针存放的是地址
声明方式 type *var-name;
注意:
指针定义和使用的时候星号的含义不同
要采用int *a; 的形式定义。
不要使用

int* a;
  • 1

虽然结果一样但是会产生误导;
多指针变量初始化

int *a,*b;//采用这种写法
int* a,b;或者int *a,b;//仅仅对a定义了指针类型
  • 1
  • 2
1.指针的创建
//指针
//创建指针类型对象 :
	int val = 100;
	int *p1 = &val;//指针p1存放val的地址
	cout << "p1=" <<*p1 << endl;
//指针访问对象(获取对象值)或者给对象赋值:

	*p1 = 200;
	cout << "p1=" << *p1 << endl;
	cout << "val=" << val << endl;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果:

p1=100
p1=200
val=200
  • 1
  • 2
  • 3
2.空指针
int *p2 = NULL;//需要include cstdlib
	int *p2 = nullptr;
	int *p2 = 0;
	cout << "p2=" << *p2 << endl;//打印会报错
  • 1
  • 2
  • 3
  • 4
3.void* 指针

void* 指针可以存放任意类型的对象的地址。

4.指针的指针

指针的指针即**p
从逻辑上讲,一层指针指向某个变量地址,两层指针则指向某个变量地址所在存储的地址。
在这里插入图片描述

int val = 1024;
	int *p1 = &val;
	int **p2 = &p1;
	cout << "val " << val << endl;
	cout<< "*p " << *p1 << endl;
	cout << "**p " << **p2 << endl;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

结果:

val 1024
*p 1024
**p 1024
  • 1
  • 2
  • 3
5.指针的引用

先不写
建议这种多个符号的情况 符号从右向左看,这样确定r是引用类型,然后再往左看 可以知道r引用的是指针
emmm。。。不懂
在这里插入图片描述

与const的组合使用。。。略

参考:
[1] 《C++promer》
[2] 菜鸟教程
[3] C++指针详解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AI算法构造者/article/detail/63189
推荐阅读
相关标签
  

闽ICP备14008679号