码迷,mamicode.com
首页 > 其他好文 > 详细

C指针小结1

时间:2015-04-01 00:29:23      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:c编程

                                            C指针小结1

     我认为C语言的核心就是指针和对内存的操作,而操作内存就是由指针实现的,所以说指针真的非常非常重要,在后边的数据结构的学习中更要用指针,如果你立志要走C系统的开发这条路,那么你就应当精通指针的各种应用。下面写一点博主在学习指针时的一点小心得,小体会(仅仅一家之言)。

   在刚学习指针时是真的一头雾水,感觉好难理解啊,这到底是个什么鬼?为何如此之难?不过在经过很长时间的纠结后博主还是有所体会。

指针:

        指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。

运算符* 和& ,“*”的意思是取出这个地址存储的内容,“&”的意思是取出存储这个值的地址(取地址符)

       例如:

                 int *a;

                这个a就是一个指针,此时a存储的是一个地址。

        指针的初始化:

                既然指针是一个地址,那么初始化时就应当赋给指针一个地址作为初始值。

                int *a;

                int b=5;

                a=&b;

                此时a的值为一个地址(这个地址是随机分配的),

                此时b的值为一个int型的常量5,此时*a的值正是5;

         现在就两个表达式进一步说明指针:

            int  c=4;

            int *p=&c;

          上边声明了一个int型常量c和一个指向int型的指针p。

           现在讨论赋值问题:

                    地址(&c),(&p),(++p),(p++)都是不能当作左值来赋值的。

                   地址中包含的内容(常量)(++*p),(*p)++,++*++p,也不能当作左值来赋值。

           指针同样可以进行算术运算,对它加上N,就等于它向后移动N个元素,当指针进行减法运算或者比较运算时(这两个或多个指针都要指向同一个数组中的元素);

             使用指针时应当注意的地方:

                1.错误地对一个未初始化的指针变量进行解引用。

                2.错误地对一个NULL指针进行解引用。

                3.向函数错误地传递了一个NULL指针。

                4.未检测到指针表达式的错误,从而引起错误。

                5.对一个指针进行减法运算,使它非法地指向了数组的第一个元素的前面的位置。

                6.小心使用++P和--P这类表达式,极有可能越界导致严重后果。

                

C指针小结1

标签:c编程

原文地址:http://blog.csdn.net/zmrlinux/article/details/44784997

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!