C++基础知识 课堂复习

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;
 }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值