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++基础(与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<iostream>
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<<value;
return 0;
}

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

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

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

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

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

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

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<<b<<" "<<a;
    return 0;
}

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

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

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

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:38:18  更:2022-09-24 20:40:04 
 
开发: 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年5日历 -2024/5/19 12:11:24-

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