您的位置:首页 > 编程语言 > C语言/C++

函数,const指针参数,递归,指向函数的指针

2017-02-25 16:39 375 查看
库函数是已经定义和编译好的函数,同时可以使用标准库头文件提供其原型(函数声明在头文件中)。

C++函数的返回值不能是数组,但可以是整型,浮点型,指针,结构或者对象等。

按值传递和按地址传递:

int main()
{
void change(int a, int *p);//函数声明,按值传递和按地址传递
int x = 1, y = 2;
change(x, &y);//将x的值复制给a,将y的地址传给p
cout << x << y;//x=1,y=6
}
void change(int a, int*p)
{
a = 3;//不会改变x的值
*p = 6;//会改变y的值
}传递数组:
int main()
{
void ar(int a[]);//传递数组指针,还应当传递一个数组长度的参数
int a[6];
ar(a);//数组名即为指针
}
void ar(int a[])
{
cout << a[2];
}arr[i]==*(ar+i); &arr[i]==ar+i。
const double ar[]表示指针ar指向的是常量数据,不能使用ar来修改该数据。

指向数组中不同元素的指针相减结果为两个指针间元素的个数。

const:const int *p不能通过该指针改变其所指向的值,但可以通过其他指针来改变,或者改变该指针的指向。

int *const p不能改变指针的指向,但可以改变其所指向的值。

const int*const p=&a既不能改变其指向,也不能通过该指针修改其所指向的值,但可以通过其它指针修改。

int main()
{
int a = 32,b=10;
const int*p = &a;
int *point = &a;
int *const pt = &a;
*p = 12;//非法
*point = 20;//合法
p = &b;//合法
*p = 13;//非法
pt = &b;//非法
*pt = 24;//合法
}如果变量为const,则指针也要为const。

字符串常量实际上是一段地址。
函数的递归。

函数的指针,如何使指针指向函数:
int main()
{
double pam(int);
double(*pf)(int);
pf = pam;
}注意:pam的特征标必须和pf相同;estimate(50,pam)。上述代码也可以 auto pf=pam;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++