欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c++语言的学习笔记代码与笔记注释《函数部分》

程序员文章站 2022-09-26 15:30:47
具体的笔记以注释的形式写在代码内,每个知识点用函数的形式表现。 运行结果 ......

具体的笔记以注释的形式写在代码内,每个知识点用函数的形式表现。

  1 #include <iostream>;
  2 #include<cmath>
  3 
  4 const double PI=3.1415926;
  5 int func(int& a,int& b){
  6     int c = a+b;
  7     int t =a;
  8     a=b;
  9     b=t;
 10 //值引用,与语义引用
 11 //交换a,b的值,从内存中改变。
 12     return c;
 13 }
 14 
 15 int func1(){ //&取地址;
 16     int P;
 17     P=10;
 18     std::cout<<""<<&P<<std::endl;
 19     return 0;
 20 
 21 //inline 关键字表明这个函数在编译的时候推荐编译为内联函数,
 22 //即,将函数体嵌入在调用的位置。
 23 }
 24 inline double func2(double l){
 25     return PI*l*l;
 26     //函数体足够简单时可以减少函数调用和返回的开销。
 27 }
 28 
 29 
 30 
 31 //关于constexpr函数的使用。
 32 //必须注意的是return的返回值必须是常量值。
 33 
 34 constexpr int func3(){
 35     return 20;
 36 
 37 }
 38 //默认参数值的函数,的使用。
 39 int func4(int a,int b =10,int c =12){
 40     if (b!=10) {
 41         std::cout << "b的值为:" << b<<"\n";
 42         std::cout << "不是函数默认的值";
 43     }else if(c!=12){
 44         std::cout<<"c的值为:\n";
 45         std::cout<<"c不是函数默认值!\n";
 46     }else{
 47         std::cout<<"b,c为默认值\n";
 48 
 49     }
 50 }
 51 
 52 //函数的重载的使用方法
 53 //注意:参数名不能区分重载函数,返回值不能区分重载函数,不要把不同功能的函数声明为重载函数,以避免混淆误解
 54 //第一种情况是参数类型不同,第二中情况是参数的个数不同
 55 //第一种(第二种类似)
 56 
 57 int sumOfsquare(int a,int b){
 58     return a+b;
 59 }
 60 double sumOfsquare(double a,double b){
 61     return a+b;
 62 }
 63 
 64 //可变长度的形参表,可变参数。
 65 //1、使用initialer_list的标准库类型
 66 //initialer_list的参数的类型必须是相同的。
 67 //2如果实参的类型是不同的,需要 编写可变参数的模板。
 68 
 69 
 70 //initialer_list其对象永远是常量值,不能改变。
 71 //可以有其他类型的参数。
 72 //initialer_list的主要方法:
 73 //initialer_list<T> lst;  默认初始化;T类型的空列表
 74 //initialer_list<T> lst{a,b,c...};
 75 //lst.size()列表中的元素数量
 76 //lst.begin 返回指向lst首元素的指针
 77 //lst.end() 返回lst尾元素下一位置的指针
 78 
 79 int main(){
 80     //int func(int& a, int& b);
 81     int a ,b;
 82     a=10;
 83     b =12;
 84     std::cout<<"赋值前a:"<<a<<",赋值前b:"<<b<<std::endl;
 85     int ls =func(a,b);
 86     std::cout<<"id of a:"<<&ls<<std::endl;
 87     std::cout<<"a="<<a<<","<<"b="<<b<<std::endl;
 88    // int func1();
 89     func1();
 90     double pi=func2(2.00000000);
 91     std::cout<<pi<<"\n";
 92     std::cout<<"关于constexpr函数的用法:"<<func3()<<"\n"<<std::endl;
 93     func4(4,12);
 94     int sum = sumOfsquare(2,4);
 95     double sum1 =sumOfsquare(2.111,2.0101);
 96     printf("\n%d %.10f",sum,sum1);
 97     std::cout<<"\nint sum:"<<sum<<"\ndouble sum:"<<sum1<<"\n";
 98     std::cout<<sin(30);
 99     // cmath里的函数值是需要输入弧度的。”系统函数“的使用。
100     return 0;
101 }

 

运行结果

 1 /home/leo/CLionProjects/yinyong/cmake-build-debug/yinyong
 2 赋值前a:10,赋值前b:12
 3 id of a:0x7ffeab257ac0
 4 a=12,b=10
 5 0x7ffeab257a84
 6 12.5664
 7 关于constexpr函数的用法:20
 8 
 9 b的值为:12
10 不是函数默认的值
11 6 4.1211000000
12 int sum:6
13 double sum:4.1211
14 -0.988032
15 Process finished with exit code 0