C++新课与C复习

1、基础知识架构:

1 几种数据类型的长度:

        char  1; short 2 ; int long float 4; double 8;

2 几种数据类型的与"0"值比较:

int : if(a==0)   bool  if(a);  *a: if(a==NULL)  float: if(a>-0.000001)&&(a<0.000001);

2、"::" 域解析符:

1 #include <stdio.h>

int a=5;

int main()

{

int a=2

printf("%d\n",::a);

}

此时输出的是全局变量a =5 这个值 ::可以用作 在函数内 同名变量采用全局变量这样的功能 ;

2  用作使用namespace 空间内的成员使用

例如

#Include <iostream>

using namespace std;

namespace A{

print()

{

cout<<"hello world"<<endl;

}

namespace B{

print()

{

cout<<"hello world"<<endl;

}

int main ()

{

A::print();

B::printf();

}

}

这样就可以输出两个了 一个是A的print 一个是B的print;这是两个不同的,如果不用的话 就无法找到这个函数 因为是在一个namespace 文件夹里面


3:、 using 申明符号的是用方法 直接看代码:可以使用任何的 文件里面的成员


#include <iostream>

using std::cin;

using std::string;

int main ()

{

int n;

cin<<n;

std::out<<n<<std::endl;

}

当定义了 cin string 后就可以使用这两个函数了 out和 endl 是用了 ::的使用方法用std 这个文件夹里面的函数;

*using 使用域:

如下代码

#Include <iostream>

using namespace std;

namespace a{

int tmp=2;

}

namespace b{

double tmp=4.2;

}

int main()

{

{

using namespace a;

cout<<tmp<<endl;

}

{

using namespace b;

cout<<tmp<<endl;

}

}

这个代码两个输出 分别是 2 4.2 一个使用的是前面一个 一个使用的是后面一个 因为有{}限制区域 所以使用范围仅在括号内 所以 第一个用的是a 第二个用的是b;


4:分配内存 

* 分配内存都是分配在栈上面的,  是程序员自行跟系统索取的,也是程序员自己释放的,所以要了空间以后要记得删除,

C当中 分配分别 是MALLOC 和 free;

C++当中 分配分别是 new 和 delete;

具体分配:例如

char *p=new int ;这条语句给这个P分配了 一个int 的内存;     delete p;删除一个指针;

char *str = new int[20]; 这条语句给STR分配了 20*4的内存空间   delete [ ]p; 删除一个数组指针;

*malooc free  new delete 是成对使用的不可以分开。


5:重载函数

在C当中 函数的名字 就是函数的入口地址 是唯一的 不允许重复的;但是C++提供了可以重名的重载功能;具体的体现就是

1、形参类型不用

2、形参数目不同

3、 形参数目和类型都不同;

例如 如下代码:

#include <iostream>

using namespace std;


int a(int,int);

double a(double,double);

int a(int ,int ,int ); //这三种函数都是正确的 main函数调用

int main()

{

int a=3,b=5,c=7;

float m=8.7,n=9.2;

a(a,b);

a(a,b,c);

a(m,n);          //这三种函数调用都是正确的 系统会自动匹配打相应的函数上

}          

如果打印的话 那么上面三个分别是 3  5   3 5  7  8.7  9.2;


2、默认的是形参定义

默认是形参定义是从右往左的,例如 int(int x,int y=2,int z=5);TRUE;

int (int x=0,int y,int z=2);FLASE;

还有以下的函数;

#include <iostream>

using namespace std;

int a(int x,int y=0,int z=0)

{

cout<<x<<y<<z<<endl;

}

int main()

{

int a=1;b=2;c=3;

a(a);

a(a,b);

a(a,b,c);

}

输出结果分别是 1 0  0;  需要注意的是,重载函数 系统会匹配能够符合要求的函数形式,如果有2个以上,那么就会报错有歧义,如果没有就会显示其他错误,形参过

      1 2 0;             多,或者形参 太少。

      1 2  3;



6:内联函数

 内联函数使用的意义:因为函数创建后 就会在栈上分配一份空间,调用函数的过程就是 入站和出栈的过程,如果这个函数 很小的话 那么就是浪费资源,成本过高,

所以用内敛函数就可以 省去进栈出栈 的过程,这样就可以降低成本。

需要注意的事项有:

1、内敛函数中不可以出现 循环和选择语句。

2、调用内联函数之前必须实现定义和申明;

3;内联函数是否使用 由编译器决定,程序员只是提议编译器使用内联函数

4、不能指定跑出异常类型。

代码如下:

#Include <iostream>

using namespace std;

inline int cmp(int x,int y)

{

return x>=y?x:y;

}

int main()

{

int a[10];

int i;

int tmp=a[0];

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

{

tmp=cmp(tmp,a[i]);

}

cout<<tmp<<endl;

}


























  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值