函数,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++函数的返回值不能是数组,但可以是整型,浮点型,指针,结构或者对象等。
按值传递和按地址传递:
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;
相关文章推荐
- B继承自A,A指针无法隐式转换为B指针,函数参数只管指针类型,与实际指向对象无关
- 定义一个含10个函数指针的数组,指向的函数带一个整形参数
- C++老话题:用指向函数的指针作函数参数
- [C++程序设计]用指向数组的指针作函数参数
- 指针参数在函数中不能改变指针指向的原因和解决方法
- 指向数组的指针作函数参数
- 用指向指针的指针作函数的参数(指针、指针数组、指向指针的指针)
- 函数指针、函数返回指针、const指针、指向const指针,指向const的const指针。
- 用指向数组的指针作函数参数
- C++中用指向数组的指针作函数参数
- //8----14//指向数组的指针作函数参数
- B继承自A,A指针无法隐式转换为B指针,函数参数只管指针类型,与实际指向对象无关
- 用指向函数的指针作函数参数
- error C3867: “A::fun1”: 函数调用缺少参数列表;请使用“&A::fun1”创建指向成员的指针
- objective-c 函数参数 传地址 传指针 指向指针的指针
- 用指向数组的指针作函数参数
- 二维数组做函数参数,如何将三维数组降为二维数组,指向数组的指针的使用
- 指向指针的指针做函数的参数
- “Caculate::writehtml”: 函数调用缺少参数列表;请使用“&Caculate::writehtml”创建指向成员的指针
- 指向指针的指针在函数中参数传递并返回