C++基础(与C的区别)

C++ 基础

前言:只记录与C的区别


①命名空间

  • 命名空间 namespace 作用:可以通过命名空间辨别相同名字的函数或变量

    命名空间定义:

    namespace Li
    {
    	name=1;
    }
    namespace RU
    {
    	name=2;
    }
    

    调用:

    name1=LI::name;
    name2=RU::name;
    
  • C++的输入输出与换行符

    std::cin>>;//输入
    std::cout<<;//输出
    std::endl;
    

    C++在输入输出中取消了占位符,与python类似

②数据类型与表达式

  • C++比C多了3种数据类型:
3种数据类型
逻辑类型bool
引用类型&
类类型CLASS
  • 类型转换:

    从短字节类型转化为长字节类型,反之容易造成数据丢失

③动态内存管理

  • C中的malloc() free函数与C++中的new()和delete()函数类似

  • C++中的new与delete必须配套使用,delete只能释放new创建的空间

④函数重载

即可以存在相同名字的函数,编译器自动通过函数的参数类型与参数个数进行区分

⑤inline:用inline定义一个内联函数

#include
inline int abs(int value)
{
	return (value < 0 ? -value : value);
}
int main()
{
	int m = -2, ret;
	ret = abs(++m);
	std::cout << ret;
	system("pause");
}

好处:

  • 内联函数既具有宏定义优点,又克服了宏定义的缺点
  • 在编译时,调用内联函数系统自动用函数体进行替换,减少了调用开销

注意:

  • 通常只将频繁调用的、函数体较小的函数定义为内联函数
  • 内联函数内不允许有循环、switch语句,否则按普通函数处理

⑥C++与C的const区别

具体查阅下篇这篇我转载的博客

(29条消息) C++和C中const的区别_Ersansui的博客-CSDN博客

主要区别:

  • C++为内部链接,C为外部链接,即外部文件能否通过extern调用**(此处查阅上述链接)**
  • C中的const为虚假常量,在局部定义时可以通过指针修改(因为在栈空间)
  • C++中的const为真正的常量(在符号表中)

⑦引用

引用是给同一个单元起一个别名,即引用与它所引用的变量共享存储单元

用法:

引用用法
独立引用
作为函数参数
作为函数返回类型

1.初始化独立引用:

1.1 ”=“的右端是一个变量,可读也可写 【对相同单元操作

int a;
int &ra=a;

1.2 “=”右端是一个常量

const float &r2=1.0;

1.3 定义常引用

int x=1;
const int&rx=x;
rx=98;//错误,只能使用rx,不能修改  但可以使用非常引用或指针进行修改

2.引用函数参数(参数为引用)

2.1 被调函数参数为常量,不影响结果

void func(int num)
{
num++;
}
int main()
{
int value=5;
func(value);
cout<

func函数开辟临时num的空间,用完即毁,value结果为5

2.2 被调函数参数为指针,影响结果

void func(int *num)
{
    *num++;
}
int main()
{
int value=5;
func(&value);
cout<

func开辟指针num的临时空间,调用时num指针指向value的空间,在value空间对该值进行+1后,num临时空间摧毁,value结果为6

2.3 被调函数参数为引用,影响结果

void func(int &num)
{
    num++;
}
int main()
{
int value=5;
func(value);
cout<

func不开辟空间,func中的num为value的引用,共用一个单元空间,value结果为6

3.引用调用(函数为引用)

  • 函数返回引用,实际返回一个存储单元
  • 如果该函数返回引用,则该函数调用可以出现在赋值号左边
int &(int *pint)
{
    return *pint;
}
int main()
{
    int a=10,b;
    b=f(&a)*5;
    f(&a)=88;
    cout<

结果为:50 88 此时返回值是一个存储单元,该存储单元与a相同

int &(int pint)
{
    return pint;
}
int main()
{
    int a=10,b;
    b=f(a)*5;
    f(a)=88;
    cout<

结果为:50 10,此时返回一个存储单元,该存储单元与a不同,而是func隐式自我创建的

你可能感兴趣的:(C++基础,c++,c语言,算法)