c++语言的学习笔记代码与笔记注释《函数部分》
程序员文章站
2022-05-04 15:08:34
具体的笔记以注释的形式写在代码内,每个知识点用函数的形式表现。 运行结果 ......
具体的笔记以注释的形式写在代码内,每个知识点用函数的形式表现。
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