关于指针,我想说

来源:互联网 发布:沐沐是什么软件 编辑:程序博客网 时间:2024/05/01 23:03

        指针,作为C语言编程的核心内容,在后期的项目里,是需要广泛应用的。但是,我们之中还有不少人对它很陌生,所以今天我就在这里将一些关于指针的小总结,希望对你们认识它可以起到帮助。

         指针,换句话来说,就是一个地址,它代表的就是一个常量或者变量的地址。所以指针又可以分为指针变量和变量指针。所谓·指针变量就是一个有存储空间·的变量,在这个变量里面放着地址。通俗点来讲,指针就好比一个标志牌,你可以通过这个标志牌访问你想要的地址,打个比方吧。一栋大楼,如果你要去A区303,但是那些房子都是一样的时候,如果没有门牌号,你是很难到达这个地方的,所以,有了指针的存在,你就可以更加方便的访问元素。

       由于指针和内存之间有着很明显的联系,所以在这里我有必要小小的渗透一下内存方面的小知识。在计算机里面,内存也是分成不同的块,这些块有着不同的运算速度,存储着不同类型的数据。从低到高,可以分为程序代码区,文字常量区,静态区,堆区,栈区,而我们要让数据进行运行的,就是在栈区进行的。而我就用数组作为想要使用的数据结构吧。

      数组的存储,和整形数据的存放方式是刚好相反的,整形数据存放在栈里面,所以需要进行压栈的操作,因此,它的数据存储是从低地址往高地址存放的,栈的存储有个特点,先存进去的后取出来,这是对于整数而言的,数组呢,它的存储就不一样了,先存进去的,也会先取出来,所以先存的放在高地址,依次向下递减。好了,关于数组的存放先讲这些了,我还是放在重点上吧。

      声明一点:定义是有空间的,而声明是没有空间的,所以当你定义了一个指针变量,实际上你也就开辟了一定的内存空间。而在32位的操作系统里面,开辟的是4个字节,同样的,放在64位操作系统里面,开辟的就是8个字节。

      指针变量,作为一个变量,也是有不同的数据类型的。常用的数据类型有int型,char型,float型,double型。不管是是什么类型,开辟的空间都是四个字节,这点是不会变的。对指针加1,相当于让指针指向当前元素的下一个地址。这里又会牵扯到一个关于左值和右值的概念。所谓左右值,简单来说,就是在=号左右两边的值。关于左右值,可以这样来说,如果是一个常量,那就只能做右值,看几个小例子

  &ch 这是一个地址常量,所以可以做右值,但是不能作为左值

*(cp+1)这里是指向cp的下一个地址,而下一个地址可以作为一个常量,也可以作为一个变量,所以可以左值或者右值

由于时间原因,我先写这么多吧,晚上要是有时间再补一些代码,最后,欢迎指正我的不足啊。


原创粉丝点击