C指针概述
指针变量中存放的内容就是地址,即指针变量的值就是地址。
注:
1.指针也是一种数据类型,是专门存放地址的数据类型。
2.俗称的指针,是指地址,而不是指针变量。
3.指针是个常量,指针变量是个变量,二者是不同的概念。
4.指针变量在使用前,必须指向一个具体的、有效的内存单元。
接下来对上面的内容强行解释一波,使读者能够有一个感性的认识。
我们都知道C语言中有各种各样的数据类型,比如int,char,float,double等等,那话说指针变量是什么呢?指针也是一种数据类型,存放的数据所在的地址,所以说,指针也可以看成是地址。那又要问了,什么是地址?这就要从一个故事讲起……
在2011年中考结束后,元(int y)成功考上了当地的一所高中,在暑假的某一天,他要去高中学校报道,到了教室之后,他找到了教室倒数第二排的一个位置坐下,然后开始四处张望,像是机枪扫射一样,当他枪口转到十点钟方向时,他停止了扫射,眼睛好像被什么牵住一样,不舍得离开那个位置,她(int x)像是一道光,穿过他的眼睛,照进他的心里,从看到她的第一眼元就感觉她与别人与众不同,看到她的第一眼他就感觉她将来成为他爱的那个人,但是不确定,以为那只是喜欢罢了。
暑假结束,新的高中生活开始了, y很早就发现x好像喜欢跟男孩子一起玩,每次看到她与别的男孩子打打闹闹,心中都有一种醋意吧,y多希望她也能跟他一起玩啊。终于,如果我没记错的话,他们第一次说话是在运动会上。运动会她也参加100米,第七名,一共有七个人参赛,哈哈,不知什么机缘巧合,他们坐在了靠近的位置上,我已经忘了他们说的第一句话是什么了,好像是她找他玩小人老虎枪,哈哈哈哈,他还教她玩“左一拳右一拳看你收回哪一拳”,她最早的时候总是喜欢叫他“普元兄”,他却不知道应该叫她什么,每当听到她说出“普元兄”这三个字,他就像是听到她说“我爱你”这三个字一样。
有点偏题了,这样x通过“普元兄”就可以访问到y了,但是x并不知道y的家在哪里,这是定义一个整型的指针变量int *p;假如x的家庭住址是xx路xx小区xx楼,此时加粗部分就是地址,同样变量x的地址在计算机中也有一个用来存放他的地址,形如0x00000000的地址,这时如果有如下代码p = &x;这句话的意思就是将变量x的地址存放到指针变量p中,也可以说成是p指向x。
&
&只能取内存中的 变量 的地址,就是说通过使用取地址运算符&可以获得相应变量的地址,比如变量、数组元素,言外之意,就是不能通过地址运算符&获得常量、表达式之类的地址。
*
通过跟指针结合使用,获取指针所指向的变量的值,这样就可以通过指针间接地访问变量了。
指针变量在使用前不仅要定义,而且还要赋值,也就是说使用前还要进行初始化,赋值后才能使用。赋值只能赋兼容类型的值,一个int类型的指针变量,只能指向int类型的变量,所以在赋值时,不能把float类型等非int类型的变量的地址赋给int类型的指针变量。
指针与整数加法
指针与整数减法
指针与指针减法。 同一数组。 表示两个指针指向的两个元素之间的距离,而并不是两个元素之间的字节数。