C指针小结3

短命女 2022-08-07 11:42 286阅读 0赞
  1. C指针小结3
  2. 现在总结指针的更高一级的用法,其中指向函数的指针在我的博文中已经单独介绍过了,将会补充介绍几点,现在介绍别的指针的用法。
  3. 首先介绍几个陷阱:
  4. int f()\[\];
  5. int f\[\]();
  6. 这两个声明都是非法的,如果有人问这两个声明什么意思,我们应当不加思索的说出这是错误地声明,博主就曾经苦苦思考过这两个声明的意思,现在想想都觉得可笑。
  7. 现在对于指向函数的指针补充几点:
  8. 例如:
  9. int (\*pf)(int)=&f;
  10. 现在创建了一个函数指针,并把它初始化为指向函数f,其实初始化表达式的&操作符是可选的,因为函数名被使用时总是由编译器把它转化为函数指针。&操作符只是显示的说明了编译器隐式的执行的任务。
  11. 函数名首先被转换为一个函数指针,该指针制定函数在内存中的位置。
  12. 除了函数指针还有一个重要的用法就是转化表。就是使用void进行泛型的计算。
  13. 我的博文void与泛型计算已经比较清楚的说明了这一问题。
  14. 指针最后一个高级应用实例就是命令行参数的使用,也已经介绍过了。

现在介绍关键字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;不可以修改指针的值和指针指向的内容。

发表评论

表情:
评论列表 (有 0 条评论,286人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C指针

            指针在c语言中占据着重要地位,指针跟int、char、double等类似,也是一中数据类型,其特殊之处在于int等基本类型变量存放的是内容,指针变量存放的是地址

    相关 C指针3

                                                      C指针小结3        现在总结指针的更高一级的用法,

    相关 C指针1

                                                C指针小结1      我认为C语言的核心就是指针和对内存的操作,而操作内存就是由指针

    相关 Java 集合3

    集合类型主要有3种:set(集)、list(列表)和map(映射)。 (1)集 集(set)是最简单的一种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像