鸿蒙文学网

手机浏览器扫描二维码访问

第四十九章 指针四(第1页)

但凡涉及到和内存相关的知识时,老爹都会使用ppt绘制图形来辅助讲解。

如果没有那些图的话,理解起来还是有一些困难。

「就然说到这里,就顺便提一下指针的自加和自减。

我们先回顾一下普通变量的自加和自减:

inta=10;

对于a等效于a=a1,a--等效于a=a-1。

那么对于指针变量

int*p=&a;

来说也是一样的

p等效于p=p1,p--等效于p=p-1。

而我们刚刚才说过,对指针做加减运算,实际上是按照指针指向的数据类型为单位上下移动,如果我们再配合*的话,也可以对数组进行赋值或者取值,你比如说:

intarr[5];

int*p=arr;

inti=sizeof(arr)sizeof(arr[0]);

while(i-->0)

{

scanf(%d,p);

}

注意这里面有个两个需要关注的地方,首先是老爹用sizeof来获取了一个数组占用内存的字节数,如果这个地方换成sizeof(p)话,只会得到p这个变量占用的内存字节数,这是指针和数组名的区别之一。

第二点,数组名是不可以做自加和自减操作的,不信你们可以把scanf函数中的p换成a,绝对会出错。

虽然老爹无比笃定,但本着不「事不目见耳闻而臆断其有无」的原则,我尝试了一下,果然是报错了。

「那为什么会这样呢?」

「这个嘛,老爹也没有看到过c语言是如何管理数组的,但是老爹猜测,arr是一个被const修饰的指针,何以见得?如果我们对变量p进行如下修改,就会发现p也不能执行自加自减操作了。

int*constp=arr;」

「const会将一个变量变成常量,如果修饰一个指针是不是指针也变成了常量?」

一直都沉默不语的小弦子出声问道。

「的确是这样,和普通变量一样,一个指针变量被const修饰后就变成了一个指针常量,那么我们就只能为其初始化一次,就不能再修改这个指针指向的地址了。

例如:

inta=0;

intb=1;

int*constp=&a;

p=&b;

在执行最后一行代码的时候肯定会出错,因为指针变量被const修饰,并且已经为其赋值为变量a的地址了,就不能再做修改,这个应该看得懂吧?」

热门小说推荐
我家客厅有个副本

我家客厅有个副本

楚歌有一天早上醒来,忽然发现自家客厅里出现了一个副本的入口。我靠,这是什么情况,虽然老子是游戏高手,可真人下副本这种事情,老子真的不熟啊。...

军婚NO.1:大叔,轻点爱

军婚NO.1:大叔,轻点爱

说好的只结婚不同床,这是干吗?这是两张床。她怒了这么赖皮,还是不是爷们儿?他勾唇低笑要不要验验?她懂黑客会散打,却背负私生子小三石女的骂名。他是魔鬼教官,却宠她成痴。嗯?不是说要调教她,让她重新做人吗?做了两个还不够?他看着俩宝笑得腹黑那今晚继续靠!重新做人!不是重新做人!...

末世英雄系统

末世英雄系统

末世英雄系统不幸被闪电击中的大龄屌丝,醒来后却发现已经是末世,借助不靠谱的系统,靠着自己的智慧,发现一个个可靠的伙伴,寻找自己的生存之道。...

报告王爷:小妃已躺好

报告王爷:小妃已躺好

作为神偷界的第一美人,竟然会被一个猥琐男看光光关键是他竟然还笑的出来,而且笑的肆无忌惮!!真是人至贱则无敌,难道这人真的是不怕死吗?好,那姑奶奶就送你下地狱!等等,为毛我的绝世武功在他面前成了花拳绣腿?!为毛被他这么无耻放荡的抱着,我的腰竟然软了...

黄泉手札

黄泉手札

特种兵出身的墨阳因为一次意外经历,结识了以摸金倒斗为营生的秋二爷等人,为报答秋二爷的救命之恩,帮助秋二爷寻找他失踪儿子万彬的下落,却无意间卷入了一个神秘组织的阴谋之中。流传千年的苗疆巫蛊传说与东南亚的降头术有着怎样的渊源?曾鼎盛一时的古骆越文明缘何销声匿迹?千年飞僵是否真实存在?人迹罕至的粤湘交界莽山,广西十万大山,缅北死亡谷,神秘的地下阴湖,究竟隐藏着什么秘密,随着真相逐渐揭开,一个已延续数千年的阴谋逐渐浮出水面,而一切阴谋的源头,皆指向了传说中的黄泉之门。黄泉手札,一本近乎真实的探险笔记。...

每日热搜小说推荐