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的区别

b站视频:C语言与C++到底有什么区别

1.最简单的C++程序

#include <iostream>			 //头文件
#include <cstdio>			 //等效#include <stdio.h>
using namespace std;		 //命名空间
int main(){					//入口
    
	return 0;
    
}

C++头文件:

  • 直接类名的方式直接包含
  • C++包含C语言头文件,依旧可以采用C语言,当包含C语言标准库中的头文件时,可以采用C头文件名方式包含
  • 包含自己写的头文件依旧时采用“xx.h”.

C++入口函数

  • C++只支持int返回值入口函数,没有void,有没有参数返回都行。

C++命名空间

  • 命名空间的语法
  • 如何访问命名空间中值
  • 如何省略掉空间名
  • 命名空间的嵌套
#include<iostream>
#include<cstdio> 
using namespace std;
/*
C++命名空间 
1.命名空间的语法
	namespace  空间名
	{
		变量;
		函数;
		自定类型; 
	}
2.如何访问命名空间中值
	空间名;:成员; 
3.如何省略掉空间名
	using namespace 空间名;
4.命名空间的嵌套
	剥洋葱 
*/
namespace moying
{
	int age;
	void print(){
		printf("moying::print\n");
	}
}

namespace A{
	int age;
	namespace B{
		void print(){
			printf("A::B::print\n");
		} 
	}
}

int main(){
	moying::age = 11; 
	moying::print();
	
	using namespace moying;
	printf("%d\n",age);
	cout << "ILoveyou" << endl;
	// 如果没有using namespace std
	//std::cout << "iloveyou" << std::endl;
	A::B::print();
	return 0;
	
} 

2. C++基本输入和输出

C++输出(cout << ;)

#include<iostream>
#include<cstdio> 
using namespace std;
int main(){
	//No.1输出
	printf("可以");
	cout << "真行";
	cout << 1;
	// 1.2 C++依旧支持C语言的转义字符
	cout << "\n";
	//1.3 如何输出多个数据
	printf("%d\t%s%lf\n",1,"pat",1.1);
	cout << 1 << "\t" << "pat" << "\t" << 1.1 << "\n";  
	//1.4 如何输出变量
	int iNum = 1;
	char str[] =  "pat"; 
	double dNum = 1.111;
	cout << iNum << "\t" << str << "\t" << dNum << "\t"; 
	//1.5 换行 endl
	cout << "\n";
	cout << endl; 
	return 0;
	
} 

C++输入 (cin >>;)

#include<iostream>
#include<cstdio> 
using namespace std;
int main(){
	
	int iNum = 1;
	char str[] =  "哈哈"; 
	double dNum = 1.111;

	//No.2输入 
	//2.1 输入单个字符 
	cin >> iNum;   
	cout << iNum << endl;
	//2.2 输入多个数据
	cin >> iNum >> str >> dNum;
	cout << iNum << "\t" << str << "\t" << dNum << "\t"; 
    
    int num = 111;
	std::cout << " ily" << std::endl;    //using namespace 在局部时 
	cout << num << endl;	//就近原则 
	cout << ::num << endl; 	//标识当前num是全局区域的 
    
	return 0;
	
} 

3.C++的一些小细节

#include <cstdio>
#inclued <iostream>

using namespace std;

int main(){
    
    cout << 5 % 2 << endl;
    cout << -5 % 2 << endl;
    cout << 5 % -2 << endl;//正负取决于前面的数的正负
    
    return 0;
}
//强制转换
#include <iostream>

using namespace std;

int main(){
//显性类型转换 
	int a = 5;
	float b = float(a);
	printf("%f\n",b);//整型转浮点 

	float c = 5.23;
	int d = (int)c;
	printf("%d\n",d);//浮点转整型,向下取整 
	
	int t = 47;
	char y = (char)t;
	cout << y << endl;//整型转字符 
	
	char r = 'a';
	int e = (int)r;
	cout << e << endl;//字符转整型 
	
	char w = 'A';
	cout << (char)(c + 33) << endl; 
//隐性类型转换
 	a = 6;
	b = 1.3;
	cout << a * b << endl;//把精度低的类型变成精度高的 
	 
	return 0;
}

4.C++数据类型

boolfalse/true1byte
char‘c’ ,‘a’ ,‘ ’ ‘, \n’;1byte
int-2147483648 ~ 21474836474byte
float1.23, 2.5, 1.234e2, 6—7位有效数字4byte
double15-16位有效数字8byte
int-2147483648 ~ 21474836474byte
long long-2^63 ~ 2^63-18byte
long double18-19位有效数字16byte
#include<iostream>
using namespace std;
//1.4 函数返回值:具有判断含义的函数
bool size(int cursize){
    return cursize == 0;
}
void print(int a){		//2.1 所有的传参 形参 = 实参 都是赋值
    a = 123;
}
void print2(int& a){	//2.1 int& a = iNum;
    a = 123;
}
int returnNum(){		//2.2  错的
    return 1;
}
int g_num = 0;			//2.2  对的
int& reuturnG_num(){	//int& 返回值=g_num;
    return g_num;
}
int main (){
    //No.1    bool类型
    //1.1 表示的含义:真和假
    bool bNum = false;
    //1.2 它打印的值:0或者1
    cout << bNum <<endl;
    //1.3 计算机中非零值,非空值都表示成立
    bNum = 1.1;
    cout << bNum <<endl;
    //1.4 bool 内存占用:占用1个字节
    cout << sizeof(bNum) <<endl;
    //一般bool类型用在函数返回值或者是充当开始开关,标记使用
//---------------------------------------------------//
//---------------------------------------------------//
    
    //No.2    引用类型(C++很重要的类型)
    //一般用在函数返回值或者传参
    //2.1 引用的类型的含义:起别名
    int girl = 1001;
    int& haha = girl;
    haha = 9999;
    cout << girl << endl;
    
    int iNum = 111;
    print(iNum);	//a = iNum
    cout << iNum << endl;
    
    //2.2 充当返回值:需要注意的问题:不能返回局部变量的值
    //    returnNum()++;    错的,因为他只是返回一个值不是变量
    reuturnG_num() = 123123;
    cout << g_num << endl;
    
    //2.2 特殊的
    int&& c_Num = 123;	//常量的别名,但是可以修改,移动语义
    c_Num++;
	const int cNum = 1;
    const int& num = 123;
    //num++;    不能改变
//---------------------------------------------------//
//---------------------------------------------------//
    
    return 0;
}

5.C++函数思想

C++函数内联思想

#include<iostream>
using namespace std;
//函数内联:编译完后,当前函数的存在形式是二进制,牺牲空间的方式提高运行效率
//知道即可,通常内联函数的特点:短小精悍,新的关键字修饰寒湖是:inline
//事先知道一个事情:通常再结构体中或者类中实现的函数默认位内联函数 

inline int Max(int a,int b){
	return a > b ? a : b; 
} 
 
int main (){
    
    return 0;
}

C++函数重载思想

#include<iostream>
using namespace std;
//允许同名不同参的函数存在 
//不同参:1.类型不同 
void print(int a){
	cout << a << endl; 
} 
void print(double a){
	cout << a << endl;
}
//2.数目不同
void print(int a,int b){
	cout << a + b << endl;
} 
//3. 顺序不同(建立在不同类型的基础之上)
// void print(int b ,int a)与2.一样 形参顺序变没用 
void print(char a,int b){
	cout << a + b << endl;
} 
void print(int a,char b){
	cout << a + b << endl;
}

int main (){
    print(1+1);
	print(1/4);
	print(1,1);
	print('A',1);
	print(1,'A');
    
    return 0;
}

C++函数缺省思想

#include<iostream>
using namespace std;
//C++函数缺省    给形参初始化
//初始化的顺序  必须从右往左缺省 ,不能有空的 

void print(int a = 1,int b = 2,int c = 3,int d = 6){
	cout << a + b + c + d << endl;
} 
int main (){
	print();		//没有传参使用的是默认参数 
    print(10); 		//从左往右初始化 
    print(1,3); 
    print(1,3,5); 
    print(1,3,5,7); 
    
    return 0;
}

6.C++动态内存申请

#include<iostream>
#include<malloc.h> 
#include<cassert> 
using namespace std;

int main (){
	
	//C++动态内存申请 new delete 
	int* cp = (int*)malloc(sizeof(int));
	int* cpp = new int;
//------------------------------------------	
	int* cArray = (int*)malloc(sizeof(int) *3);
	int* cppArray = new int [3];
//------------------------------------------
	free(cp);
	cp = nullptr;
	delete cpp;
	cpp = nullptr;
//------------------------------------------
	free(cArray);
	cArray = nullptr;
	delete [] cppArray;
	cppArray = nullptr;
	int* pC = (int*)calloc(sizeof(int),3);
	assert(pC);
	cout << pC[0] << pC[1] << pC[2] << endl;
//------------------------------------------
	//C++也可以申请内存并初始化
	//单个数据用()方式初始化
	int* pCpp = new int(323);
	cout << pCpp[0] << endl;
	//多个数据用{}方式初始化
	int* arrayCpp = new int[3]{1,2,3};
	cout << arrayCpp[0] << arrayCpp[1] << arrayCpp[2] << endl;
	 
	free(pC);
	pC = nullptr;
	delete pCpp;
	pCpp = nullptr;
	delete[] arrayCpp;
	arrayCpp = nullptr;
	 
	 
    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 16:25:18  更:2021-08-12 16:25:27 
 
开发: 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年12日历 -2024/12/26 16:24:24-

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