手机浏览器扫描二维码访问
但凡涉及到和内存相关的知识时,老爹都会使用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的地址了,就不能再做修改,这个应该看得懂吧?」
他在战场上被召唤回国,原因无他,秉承父亲遗命完婚。本意想退婚,继续逍遥自在,却被岳父以死相逼,跟身家百亿的美女总裁未婚妻朝夕相处,自然是火花四溅!...
脚盆鸡家还是搞电影漫画的好约翰牛你的殖民地和金英镑是不是太多了白头鹰自从经济大萧条后各种被虐毛熊果断被推猴子,你想找死是吧汉斯酱,我们开个银河系副本吧...
这是一个关于爱与正义的故事。这是一个魔王被推到的故事。这是一个调教与被调教,养成与被养成的故事。这是一个关于萝莉,乙女,御姐,人妻,眼镜娘,双子,百合的故事。这是一个以上均属口胡这其实是一个纯洁的故事另群号212868098,由亲爱的夜空同学提供。...
慕莲是相貌平平的十世母胎单身狗,每一世都在靠实力单身,脱单?那是不可能的事情。终于,连老天爷都看不下去了,在她第十世八十八岁生日那一天,一道骇人的闪电从天而降落在她头上从此,某蓝色星球上少了一位单身女子,而某异界突然多了一位女掌门。当慕莲站在冷风中,呼吸异界的空气时,周围突然安静了滴,您的单身系统究极进化版已上线,请查收!她不禁抽了抽嘴角,谁来告诉她,这个突然冒出来的系统到底是怎么回事...
给美女代驾,不小心把她的玛莎拉蒂给撞坏了,她要我以身相许,这下惨了有的女人,表面上风情万种,性感诱人,但实际却是一朵带刺的野玫瑰,沾不得。而我,却爱上了这样一个女人。作者Q野玫瑰官方...
鬼谷玄门当代传人林非白下山入世,化身小小风水师。他通天道,知风水,观命相,以一手玄门术法搅动都市风雨,坐拥财色天下。...