您的位置:首页 > 编程语言 > C语言/C++

C++基础知识 课堂复习

2017-07-06 20:02 330 查看
1.变量定义位置

C语言中,所有局部变量必须在函数开头定义;

C++中只要在使用之前定义好就可以;

2.布尔类型

布尔类型是用于判断执行结果的数据类型,它的判断比较结果只有两种情况:0和非0。C++中定义0为假,非0为真,使用关键字bool定义布尔型变量。

要能够正确理解char,short ,int ,long ,float ,double等类型的字节数;

int  a = 5;

if(a != 0)

if(a == 0)

float b = 0.3;

if((b>-0.000001)&&(b<0.000001))

char *ptr=NULL;

if(NULL == ptr)

if(NULL != ptr)

bool p = true;

if(p)

if(!p)

3.new,delete

C++中:new,delete

C语言中:malloc,free;

申请空间的函数不要混用;必须成对出现;

申请单个类型空间:

int *p;

p = new int;

申请一串空间的时候:

char *ptr;

ptr = new char[100];

释放空间:

delete p;

delete[] ptr;

4.函数的重载

C语言中,每个函数都必须有唯一的一个名字,这个就必须记住每一个函数的名字。

 例如经常所见的求最大值的函数,数据类型不同,函数名不能相同。

 int max1(int ,int);

 int max2(int ,int, int);

 double  max3(double, double);

C++中允许同名函数存在,但函数的参数个数必须不同:即形参个数不同,或形参

 个数相同,但参数类型有所不同。----这就是重载。

 #include <iostream>

 

 using namespace std;

  

 int max(int,int);

 double max(double,double);

 int max(int,int,int);

  

 int main()

 {

     int i=5, j=9, k=10, p=0;

     double  m=33.4, n=8.9, q=0;

     p=max(i,j);

     cout<<i<<","<<j<<"max in two"<<p<<endl;

     p=max(i,j,k);

     cout<<i<<","<<j<<","<<k<<"max in three"<<p<<endl;

     q=max(m,n);

     cout<<m<<","<<n<<"max in two"<<q<<endl;

     

     return 0;

 }

 

 int max(int x,int y)

 {

     return x>y?x:y;

 }

 double max(double x,double y)

 {

     return x>y?x:y;

 }

 

 int max(int x,int y,int z)

 {

     int temp;

     temp = x>y?x:y;

     temp = temp>z?temp:z;

     return temp;

 }

5.inline 内联函数

函数调用的时候会发生一些时间开销:系统栈的保护,参数的传递,栈的恢复;?

 对于函数体比较小,执行时间短但频繁使用的函数来说,这种开销比较大。

 内联函数机制,不是在函数调用的时候发生转移而是在编译的时候将函数体嵌入到每个内联函数

 调用处,可以省去调用进栈出栈的时间开销。

 函数的定义:

 inline  <类型标识><函数名>(形参列表)

 {

    函数体

 }

 

 必要说明:

 1) 内联函数不能含有循环语句,swtich语句

 2) 内联函数必须在调用之前声明和定义;

 3)内联函数不能指定抛出异常类型;

 4)inline只是修饰函数向编译器提出内联请求,做不作为内联函数由编译器决定;

 

 #include <iostream>

 using namespace std;

 inline  int max(int,int);

 

 int main()

 {

     int a[10];

     cout<<"input 10 members:"<<endl;

     

     for(i=0; i<10; i++)

     {

         cin>>a[i];

     }

     int temp=a[0];

     for(i=0; i<10; i++)

     {

         temp = max(temp, a[i]);

     }

     cout<<"in 10 members is max :"<<temp<<endl;

     return 0;

 }

 

 inline int max(int x,int y)

 {

    return x>=y>x:y;

 }

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++