二: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;
}
原文地址:https://www.cnblogs.com/love-life-insist/p/12831563.html