IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++学习笔记(一) -> 正文阅读

[C++知识库]C++学习笔记(一)

C++笔记(一)

一、基础知识

1.1、函数重载

  • 同名不同参
  • 本质是编译时修改了函数名,name mangling

1.2、默认参数

int add(int a=1,int b=2){   //默认参数为1和2,不传对应实参时使用默认参数
     return  a+b;
}
  • 如果声明和实现分离,默认参数只能放在声明处

  • 默认参数从右边开始填入;

int add(int a,int b)
{
       return a+b;
}
  • 函数重载和默认参数会产生冲突,优先选择默认参数;
  • 本质:有实参就push实参,没有就push默认参数;

1.3、extern ”C“

  • 被extern ”C“修饰的代码会按照C语言的方式去编译;
extern "C"{
    void func(){
        
    }
    void func(int a){    //第二个func会编译报错,因为C编译不允许函数重载
        
    }
}
  • 声明和实现分离时,只允许在声明处加 extern “C”
#include<iostream>
using namespace std;
extern "C" void func();
int main()
{
    func;
    return 0;
}
func(){
    cout<<"func"<<endl;
}
  • 在C++中使用C编译的函数,在头文件函数声明处加上extern ”C“即可;在.c文件中若要使用extern "C"修饰的函数,则需要在声明处再加上如下的宏定义:
#ifdef _cplusplus
extern "C"{
#endif
    void func();
#ifdef _cplusplus
}
#endif

1.4、宏定义

#ifndef _TEST_H   //防止头文件内容被重复包含
#define _TEST_H
...
#endif    //受c/c++标准支持,不受任何编译器限制   //可以控制部分代码
#pragma once  //防止文件被重复保护   //较老编译器不支持,兼容性不够好    //对整个文件生效

1.5、inline

编译会将函数调用展开为函数体代码,免于开辟栈空间,减少函数调用开销;但增大了代码体积;递归不必用内联

  • 函数代码体积不大

  • 频繁调用

注意:内联函数中调用内联函数自身并不会将被调用的函数进一步展开

1.6、const

  • 意为常量,被修饰变量值不能修改
  • 如果修饰的是类、结构体(的指针),其成员也不可以更改;
const int *p=&age;  //*p is const
int const *p=&age;    //*p is const
int * const p=&age;   //p is const
const int * const p=&age;   //p and *p are const
  • 常引用
image-20210820001125129

1.7、引用

int age = 10;
int &refage = age;
refage = 20;   //age  10->20
  • 创建引用时必须初始化,并且之后无法再将它指向其他变量----》比指针安全,不会指向不明地址处;
  • 可以使用引用为另一个引用初始化,相当于为同一个变量创建了多个别名;
int age = 10;
int &ref1 = age;   //ref1=age
int &ref2 = ref1;   //ref2=age
  • 本质是指针,编译器弱化了它,弱化指针。在汇编代码和机器码中可以看到两者是一样的;
  • 指针的sizeof()。x86是32位机器,结果是4字节;x64是64位机器,结果是8字节;
  • 野指针是指向被回收内存地址的指针

1.8、汇编语言

1、

8086汇编(16bit)

x86汇编(32)

x64(64)

ARM(嵌入式、移动设备)

……

x64汇编根据编译器不同,有两种书写格式:

intel: windows

AT&T : mac 、linux

2、汇编不区分大小写

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:18:07  更:2021-10-23 12:19:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:49:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码