手机浏览器扫描二维码访问
但凡涉及到和内存相关的知识时,老爹都会使用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的地址了,就不能再做修改,这个应该看得懂吧?」
你说这靠谱不靠谱!堂堂大清朝的王府小姐竟然在脱得光溜溜的洞房花烛夜的交融瞬间穿越到了二十一世纪!更可悲的是,她的落脚地竟然是一个有着裸睡习惯的花花总裁的床上。而当时这个花花总裁正好从浴室里出来,从小被封建礼数所约束的她,怎能忍受这样被人偷窥的尴尬,抬脚就对他拉开了攻势,趁着黑暗对他飞起一脚。大胆狂徒!竟敢偷看本小姐的洞房花烛夜,还不拿命来?他边对她使着狗刨沙的功夫,边口出狂言回...
你想领略拳皇的刺激吗,你想感受火影的热血吗,你想尝试在著名小说中的纵横的快感吗,你想遨游在漫画的奇幻世界里吗?快来这里吧,这里有你想要的一切,和楚行空一起畅游在无限的世界里。来吧!这里是强者的乐园,这里是恶魔的领土。来吧,来感受这一切吧!...
我漫游于诸天万界中,汲取一个个世界的精华,传承一位位伟人的智慧,铸造一个个辉煌的文明,我不是神明,也不是恶魔,我就是我,一个文明铸造师...
人发霉的时候,穿成公主绝对是冷门落魄到哭人发霉的时候,给个随身空间里面只有堆成山的方便面人发霉的时候,遇到的男人显然毒舌冷艳到爆炸。厨艺绝佳扮猪吃虎女×独宠一人心狠手辣男日常一卿因宫里的人都说我风情万种,美若天仙~秦渊从何得出,本世子没发现。厌世脸卿因你看你看反复转身,秀身材秦渊...
现代人薛冰,莫名其妙的来到了三国时代,成为刘备手下的一名将领他会如何在这个乱世生存下去?前面,等待他的又有什么?请关注三国风云之猛将传。注本书是基于三国演义为原型,一切资料均以演义作为主要参考!******************************************本书书友群一号猛将群,群号43930411(已满)本书书友群二号猛将2群,群号28555276(已满)本书书友群三号猛将3群,群号9470944(已满)本书书友群四号三国风云之猛将传,群号1439394请各位进了一群的就不要再申请二群了,谢谢。...
不幸身死,却意外重生在一只机器狗身上。为了复仇,为了亲人,我要变强,不管你是红蜘蛛还是威震天,我要统统打倒。机器生命修炼等级划分兽级,人级,星级,地级,天级,帝级,至尊。关键词疯狂,机器也修炼。...