第七章 函数

函数不能返回另一个函数或者内置数组类型,但可以返回指向函数的指针,或者指向数组元素的指针的指针.
 
207面:形参的长度会引起误解.
当编译器检查数组形参关联的实参时,它只会检查实参是不是指针,指针的类型和数组元素的类型是否匹配,而不会检查数组的长度.
 
交换a和b的值有两个方法
1.通过引用:
#include <iostream>
 
using namespace std;
void swapa(int &v1,int &v2)
{
    int tmp = v2;
    v2 = v1;
    v1 = tmp;
}
 
int main()
{
 int a=6,b=7;
    swapa(a,b);
 cout<<"a"<<a<<"b:"<<b<<endl;
    return 0;
}
2.通过指针:
#include <iostream>
 
using namespace std;
void exchange(int *a,int *b){
    int temp=0;
    temp=*a;
    *a=*b;
    *b=temp;
}
 
int main()
{
 int a=6,b=7;
 int *p=&a,*pb=&b;
 exchange(p,pb);
 cout<<"a"<<a<<"b:"<<b<<endl;
 return 0;
}
 
 
没有返回值的函数
 
一般情况下:如果类型是void的函数使用return语句是为了引起函数的强制结束,这种return的用法类似于循环结构中的break语句的作用.
 
 
关于形参是const的问题:
#include <iostream>
#include <stdexcept>
using namespace std;
 
void use_ptr(const int a,const int b)
{
  //  a=2;
  //  b=3;
    cout<<a+b<<endl;
 
}
int main()
{
    int a2=5;
    int b2=6;
    use_ptr(a2,b2);
    //cout<<a<<endl;
    return 0;
}
如上所以.形参有const影响的只是调用函数里头的内容不允许被改变而已,传入的实参是不是const都无所谓.
 
返回类型为void的函数通常不能使用第二种形式的return 语句.但是它可以返回另一个返回类型同样是void的函数的调用结果.
 
默认实参:如果一个形参具有默认实参,那么,它后面所有的形参都必须有默认实参
 
 
原文地址:https://www.cnblogs.com/crazycodehzp/p/3267647.html