C/C++语言中的指针与数组(二)

书接上回,上一节给大家讲讲什么是数组以及数组的定义。今天接着跟大家谈谈什么是指针以及指针的定义。后面我会逐渐的把数组的使用、指针的使用以及一些使用的技巧、应用的场景、常见算法跟大家一起分享。

一、什么是指针

要想理解什么是指针,首先我们要树立的一个概念就是:指针就是一个变量(也就是内存中的小格子:内存空间)

注意:这里很多人可能会反驳我说:指针不是存放变量地址的吗?怎么成了变量了。如果你也这样理解的话。那你永远不能真正理解数组。既然指针是变量。也就是一块内存空间。那它跟普通变量有什么区别呢?他们的核心区别就是:

普通变量这个内存空间(小格子)里放的是一个普通数据。比如:(整数型12)、(浮点型123.12)、(字符型‘a’)等。

指针变量这个内存空间(小格子)里放的是一个16进制的地址数据。比如:0x00402FE2 。而这个地址就是存放普通变量的内存地址。

综上所述:指针其实就是一个特殊的变量而已。既然是一个特殊的变量。那大家是不是觉得好理解多了呢。

二、指针的定义

1、一级指针

int* p=NULL; // 表示这个指针变量P存放的是一个整形变量的地址。并把这个指针初始化为空。

int x=23;//定义一个整形变量

p=&x;//给指针变量赋值。把普通变量x的地址赋给了P

注意:有很多初学者容易出现赋值类型不匹配的错误。比如:搞混 p=x; 还是 p=&x,这里我给大家讲一个技巧。你学会了以后。你就不会出现这个错误了。

“ = ”我们大家都知道是一个赋值符号,这个符号有个定式就是:赋值符号两边的数据类型必须一致。大家一定要记住。写赋值语句的时候一定要先看看两边的数据类型是不是一致。如果不一致就要考虑是不是写错了。或者需要强制类型转换。由于赋值符号的运算顺序是:把右值赋给左值。所以我们只要关注:右值类型是不是跟左值一致就行了。

2、二级指针

int **pp=NULL;

int *p=NULL;

pp=&p;

从以上语句中可以看出二级指针其实就是 存放指针变量的地址 的一个变量。

3、多级指针

int ***ppp=NULL;

int **pp=NULL;

int *p=NULL;

pp=&p;

ppp=&pp;

以上就是指针的基本概念。以及指针的基本定义。你理解了吗?

未完待续。。。。

原文链接: https://www.cnblogs.com/yangxuegang/archive/2010/10/22/1858485.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/16393

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午4:43
下一篇 2023年2月7日 下午4:44

相关推荐