C/C++指针

目录

前言

一、什么是指针

二、指针的几个概念

1、一维指针

2、二维指针

3、指针数组

4、数组指针

三、指针的运算

总结



前言

指针在C语言中是一个比较难理解的东西,需要花费更多的时间,个人对这方面内容了解也不算太深,只能带你们简单理清一下。


一、什么是指针

             指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。 

指针描述了数据在内存中的位置,标示了一个占据存储空间的实体,在这一段空间起始位置的相对距离值。在 C/C++语言中,指针一般被认为是指针变量,指针变量的内容存储的是其指向的对象的首地址,指向的对象可以是变量(指针变量也是变量),数组,函数等占据存储空间的实体。

以上是百度百科对C语言指针的解释

通俗的来说,指针就是指向一个变量的位置或者地址的东西,举个简单的例子,比如说一所学校,它的地址是XX路XX号,那么“XX路XX号”就是一个地址,也可以理解为指针,它指向这个学校,通过这个地址,你可以找到这所学校的位置。

下面给出两张图加深理解一下

二、指针的几个概念

1、一维指针

一维指针就是常见的类似于int*的东西

int* p=NULL;

上边就是定义了一个一维的指向int类型的指针p

2、二维指针

二维指针就是指向指针的指针,就是上面第一张图中最大的阿尼亚,一般用来定义链表的时候用。

int* p=0;
int** k=&p;

上边定义了一个指向一维指针p的二维指针k

3、指针数组

在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组,指针数组本质是是一个数组,数组内每一个元素都是一个指针。

int *p[10];

上面定义了一个指针数组p[10],里面存的是指针

4、数组指针

数组指针是指一个指向数组的指针,本质是一个指针,相当于一个二级指针。注意与指针数组的区别

int (*p)[10];

上面定义了一个指向数组的指针p,p就被称为数组指针。

三、指针的运算


1.定义一个指针用*号

int *p=NULL;

一般来说指针在定义的时候尽量初始化,即让它指向一个东西

2.指针指向一个变量需要取地址,必要时用&(取地址)符号

int a=3;
int arr[6]={0};
int *p_a=&a;
int *p_arr=arr;  //数组名本身是一个地址

3.两个指针都指向数组中的某个元素时可以相减,返回两者间元素个数

    int arr[6] = { 0 };
	int* p1 = arr;
	int* p2 = &arr[3];
	cout << p2 - p1;    //c++的输出语句,输出3

注意:两指针不能相加,无意义!!

4.获取指针内容时用*号

    int a = 1;
	int* p = &a;
	cout << *p;  //获取p指向的内容

总结

懒得写。。。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值