函数指针的用法详解(C语言) 指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。 指针的注意事项: 1、不可以用指针指向一个数,指针只能指向一个变量的地址。 例如:若将500赋给指针p,则会出现运行错误;应定义一个整型变量a,将500赋值给a,再用指针指向变量a所在的地址,这样我们就需要用到 ‘&’ 取地址运算符;例如:(1) int *p=&a; (2)int *p;p=&a; 两种均可以。 2、改变形参不代表改变实参 不能企图通过改变指形参的值而使指针实参的值改变。例如下面是错误的: 分析:程序运行时,从main函数开始执行,通过scanf函数给a和b赋值,输入8和10,将a的地址和b的地址分别赋值给指针变量ap1和ap2,使指针ap1指向a,ap2指向b。接着执行if语句,由于a<b,调用conter函数,将a和b的地址传递给x和y。继续执行conter函数的函数体,交换x和y的地址,使形参x的值为&b,y的值为&a,但是无法使ap1指向变量b的地址,ap2指向变量a的地址。故不能实现交换。 3、字符串指针 字符串指针指向的是一个字符串 例如:string1是一个指针变量,指向字符串”I love China!”,指针变量string1存放的是这个字符串的首地址。所以输出的是一个字符串,应改写成printf(“%s ”,string1); 4、调用函数指针 函数指针变量的调用时,分析函数指针变量不能进行算术运算,这是与数组指针变量不同的。数组指针变量加减一个整数可使指针移动指向后面或前面的数组素,而函数指针的移动是毫无意义的。函数调用中“(*指针变量名)”的两边的括号不可少,其中的“*”不应该理解为求值运算,在此处只是一种表示符号。例如:要把“z=*pomax(x,y);”改成“z=(*pomax)(x,y);”
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/86560.html