zoukankan      html  css  js  c++  java
  • 二:C++程序的基本构成

    1:输入输出流

    1#include<iostream> C++标准输入输出流的库函数

    2using namespace std; //命名空间

    3)标准输入流:cin

     cin标准输入流代表的是标准的输入设备键盘。cin>>a>>b>>c,在输入一组变量的时候可以用空格回车,tab键分割。输入字符串的时候,空格代表字符串结束

    4)标准 输出流,cout //标准输出设备,在程序中通常指的是屏幕。cout<<a<<b<<c<” ” endl都表示换行

    2:针对于C语言的变化

    (1) const修饰符

    #define PI 3.14 定义常量

    const char * pc = ‘’abcd”  表示pc指针指向的是一个字符串常量,所以不能改变常量的数值

    char * const pc = ‘’abcd” 表示 pc是一个常量地址数值,指向的是’abcd”的地址不能改变这个地址数值但是可以改变字符串的数值。

    2)内联函数:在函数前面加上inline关键字就是内联函数

      引入内联函数的目的:是为了减少系统的开销,提高运行效率。

    ① 内联函数在系统第一次调用之前必须进行完整的定义。

    ② 在内联函数内部一般不能有复杂的控制语句,例如if,for等语句。

    ③ 将频繁调用的函数定义为内联函数一般不超过5行。

    ④ 内联函数示例:就是把函数内部的代码直接插入到主函数里面。

    #include<iostream>

    using namespace std;

    inline int box(int i,int j ,int k){

        return i*j/k;

    }

    int main(void){

        int a,b,c,v;

        cin>>a>>b>>c;

     

        v = box(a,b,c);

        cout<<"a*b/c "<<v<<endl;

        return 0;

    }

     

    常见错误:char a[20];

    a = “str1”; //不能把常量char[4]类型复制给 const char 20类型的数组

    应该使用:strcpy

    3)带有默认参数的函数

      一般来说函数的参数的个数应该与形参的个数相同,但是C++允许实参个数与形参的个数不同,在说明函数原型的时候,为一个参数或者多个参数可以指定默认形参。

      Int area( int x = 5 , int y =10 )

      注意事项:

       默认参数都应该声明在不指定默认参数的右边,在函数调用的时候,如果某个参数省略,则其后的参数皆应省略而采取默认值,不允许某个参数省略之后,在给其后的参数默认。

       如果函数定义在调用之前,则应该在函数定义中指定默认数值,声明在前声明中指出,但是如果同时指定,有的C++编译系统会报(重复指定默认数值的错误)。

       Int fun( int I ,int j=5, int n) //错误

       Fun(,5) //报错

    4)函数重载

    函数重载的条件:函数名相同,参数个数类型不同

    例如:Area( int i), Area(double i), Area( double I, int j);

    5)作用域运算符

    通常情况下:如果两个同名变量,一个是全局的,另一个是局部的,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量,如果在希望在局部变量的作用域内使用全局变量,可以在该变量名的前面加上::代表全局变量。

    6)强制类型转换

    Int I = 10 ;

    Double X = ( double)I; //C

    Double X = double(i); //C++

    ( 7 ) 运算符newdelete

    1:普通类型申请和释放内存变量

    C语言使用malloc() free() 函数来申请和释放内存  

    C++ 使用new delete 来申请和释放内存

       指针变量 = new 类型;

    Int *pi;  

    pi= new char;

    char *pc;

    pc = new char;

    double *pd;

    pd = new double;

    运算符用来释放内存: delete 指针变量名

    2:数组类型申请和释放内存

    数组内存地址的申请和释放:

    int *p = new int[10];

    int *pi = new int[2][3][4];

    int *p = new(99); //动态分配内存并把99作为初始数值赋值给p

    数组释放内存:

    delete []指针变量名

    delete []pi;

    //二维数组指针赋值

    int *p = new int(99); //

    cout<<(*p)<<endl;

    delete p;

    int **a = new int*[3];

    int i=0,j=0;

    for( int i = 0 ; i<3 ; i++)

    a[i] = new

    delete []a;

    ( 8) 引用

    1.引用的概念是起了一个别名

    类型 & 引用名 = 已定义的变量名

    引用和其代表的变量共享同一内存单元,当i发生变化的时候,J也发生变化。

    引用注意的地方:

    1)引用不是一种独立的数据,他必须与某一种类型关联,在声明引用的时候,必须立即对其进行初始化,不能再声明完成之后赋值。

    Int I =1;

    Int &j = I;

    Int &j //错误

    2)指针和引用的区别

      指针本质是地址值,就是内存的数值,引用的数值是真实的数值。

      Int I = 5 ;

      Int *ptr = &I;

      Int &ptr = I;

    3)引用在初始化后不能再被重新声明为另一个变量的引用

      Int I , k;

      Int &j = I;

      J = &k;

    9)计算Fibonacci小练习

     

    #include<iostream>
    using namespace std;
    
    double Fibonacci( int n )
    {
        if ( n == 1 || n ==2 )
             return 1;
        else if( n < 0) {
             return 0;
        }
        else{
            return Fibonacci(n-1) + Fibonacci(n-2);
        }
    }
    
    int main(){
    
       int n=20;
       double* sum = new double;
    
       *sum = Fibonacci(n);
       cout<<(*sum)<<endl;
       delete sum;
    }
  • 相关阅读:
    FastJson 配置Long转String类型 , 解决前后端交互, id过长,失去精度的问题
    idea使用技巧大全
    多线程下载工具
    https url 下载
    Jquery ajax请求格式
    AQS之可重入锁ReentrantLock原理
    整理所学之HashMap | 第二篇
    数据结构:哈希表例子
    整理所学之HashMap | 第一篇
    设计模式 | 第三篇:装饰者模式
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/12831563.html
Copyright © 2011-2022 走看看