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

C指针小结3

时间:2015-04-03 11:18:12      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:c编程


                                                  C指针小结3


       现在总结指针的更高一级的用法,其中指向函数的指针在我的博文中已经单独介绍过了,将会补充介绍几点,现在介绍别的指针的用法。
      首先介绍几个陷阱:
       int f()[];
       int f[]();
       这两个声明都是非法的,如果有人问这两个声明什么意思,我们应当不加思索的说出这是错误地声明,博主就曾经苦苦思考过这两个声明的意思,现在想想都觉得可笑。
             现在对于指向函数的指针补充几点:
         例如:
           int (*pf)(int)=&f;
          现在创建了一个函数指针,并把它初始化为指向函数f,其实初始化表达式的&操作符是可选的,因为函数名被使用时总是由编译器把它转化为函数指针。&操作符只是显示的说明了编译器隐式的执行的任务。
         函数名首先被转换为一个函数指针,该指针制定函数在内存中的位置。
         除了函数指针还有一个重要的用法就是转化表。就是使用void进行泛型的计算。
         我的博文void与泛型计算已经比较清楚的说明了这一问题。
         指针最后一个高级应用实例就是命令行参数的使用,也已经介绍过了。
现在介绍关键字const.
       const可以创建数组常量,指针常量,以及指针常量的指针。
       通常把指向常量的指针用作函数参量,以表明函数不会引用这个指针来修改数据。
        void show_array(const  double *ar ,int n)
         关于指针赋值和const有一些规则要注意,首先将常量或非常量数据的地址赋给指向常量的指针是合法的。
          int rates[10]={0};
          const double *p=rates;
        然而只有非常量数据的地址才能赋给普通指针:
         const double a;
         p=a;非法 
         double *p=rates;合法
         声明一个指向固定的地址的指针:
         double *const p=rates;这个指针指向数组的第一个元素的地址并且不能改变。
         可以使用两个const来进行声明:
         const double *const p=rates;不可以修改指针的值和指针指向的内容。

C指针小结3

标签:c编程

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

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