半亩花草 发表于 2023-1-8 01:09:57

C++初探索

C++初探索

前言

C++ 和 C 的区别主要在8个方面:

[*]输入和输出
[*]引用
[*]inline函数
[*]函数默认值
[*]函数重载
[*]模板函数
[*]new 和 delete
[*]namespace
我仅对印象不深的地方做了总结。

目录

[*]C++初探索
[*]前言
[*]一、引用初探索

[*]1.引用的定义与区别
[*]2.引用的要求
[*]3.引用与指针的区别
[*]4.常引用
[*]5.何时使用引用

[*]二、inline内联函数

[*]1.内联函数的定义
[*]2.内联函数的处理流程
[*]3.内联函数与三者的区别

[*]3.1 与普通函数的区别
[*]3.2 与static函数的区别
[*]3.3 与宏定义的区别

[*]4.仅realese版本才会产生内联
[*]5.inline函数使用的限制

[*]三、函数的重载
[*]四、函数模板
[*]五、new和malloc
[*]总结

一、引用初探索

1.引用的定义与区别

定义:类型& 引用变量的名称 = 变量名称
'&' 不是取地址符吗,怎么又成为引用了呢?下面将常见的 '&' 做一个区分:
C中的 '&'
c = a && b;                 //此处 && 是 逻辑与

c = a & b;                //此处的 & 是 按位与

int *p = &a;                //此处的 & 是 取地址符int &x = a;                //此处的 & 是 引用

void fun(int &a);        //此处的 & 也是引用疑问:int &fun()这个是函数的引用吗?
回答:不是函数的引用,表示函数的返回值是一个引用。
2.引用的要求


[*]①当定义引用时,必须初始化//正确用法:
int a = 10;
int &x = a;
[*]② 没有引用的引用(没有二级引用)//错误用法:
int &x = a;
int &&y = x;
[*]③ 没有空引用int &x;                //error:不存在空引用
3.引用与指针的区别

引用指针必须初始化可以不初始化不可为空可以为空不能更换目标可以更换目标没有二级引用存在二级指针<ul>1、引用必须初始化,而指针可以不初始化
int &s;                //error:引用没用初始化
int *p;                //right:指针不强制初始化2、引用不可以为空,指针可以为空
int &s = NULL;                //error:引用不可以为空,右值必须是已经定义过的变量名int *p = NULL;                //right:可以定义空指针。int fun_p(int *p){    if(p != NULL)                //因为指针可以为空,所以在输出前需要判断。    {      cout
页: [1]
查看完整版本: C++初探索