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++深入理解

函数与参数

计算一个整型表达式

int abc (int a, int b, int c)
{
return a + b * c;
}//a,b,c是函数abc的形参每一个形参都是整型的,调用abc:
int z = abc(2, x, y);
//z = abc(2, x, y).......那么在2,x, y便是分别与a.b.c对应的实参。?
/*
 当调用 abc(2, x, y)是a被赋值2,b被赋值x, c被赋值y。对它们赋值之前进行类型转换,
egg:如果x是double类型其值为3.7,那么b被赋值为3。
*/

当函数运行结束时,形参类型的析构函数负责释放形式参数,当一个函数运行结束时,形参的值不会被赋值到对应的实参中。因此,函数调用不会修改与形参对应的实参的值。

模板函数?

利用模板函数计算一个表达式

template<class T>
T abc(T a, T b, T c)
{
	return a + b * c;
}//这是一段通用代码,T可以是int,double,float ,long......等数据类型。

引用参数?

利用引用参数计算表达式

template<class T>
T abc(T &a, T &b, T &c)
{
	return a + b * c;
}
//如果abc(x,y.z)调用,其中,a,b.c是x,y,z的别名与传值参数的情况不同。

常量引用参数?

利用常量引用计算一个表达式

template<class T>
T abc(const T &a, const T &b, const T &c)
{
	return a + b * c;
}
//用关键字const来指明函数不可以修改引用参数。

返回值?

一个函数可以返回一个值,一个引用或一个常量引用。

#include <iostream>
using namespace std;
int& add(int i, int b);

int main()
{
	
	int c = add(100000000, 1111111);

	cout << c << endl;

	return 0;
}
int&add(int i, int b)
{
	b = i;
	return b;
}
/*
100000000

F:\新建文件夹\myfirst\Debug\myfirst.exe (进程 16788)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
*/

重载函数?

一个函数的签名是有这个函数的形参类型以及形参个数确定。

#include <iostream>
using namespace std;
int fun(int a);
int fun(int a, int b);

int main()
{
	return 0;
}
int fun(int a)
{
	return a;
}
int fun(int a, int b)
{
	return a + b;
}


?动态处理空间的分配? ? ?

c++操作符new用来进行动态存储或运行时存储分配,它的值是一个指针,指向所分配的空间。

int* y;
y = new int;
*y = 10;
//合并为int *y=new int ;*y=10;
//或int *y=new int(10);或int*y;y=new int(10);

一维数组和二维数组?

//创建一维数组X其长度为n;
flaot* x = new float[n];//操作符new为n个浮点数分配了内存空间,并返回第一个浮点数空间的指针。
//可以用x[0],x[1]......x[n-1]的形式访问。
delete[]x;//c++中的delete用来释放new开辟的空间。

int* p = new int;
delete p;

对于二维数组,c++采用多种机制来说明二维数组,但编译时就要知道两位的大小。

创建一个二维数组

template <class T>
void make2dArray(T**& x, int numberofRows,int numberOfColumns)
{
	x = new T * [nmberofRows];//创建行指针
	for(int i = 0; i < numberofRows; i++)
	{
	x[i] = new T[numberOfColumns];//为每一行分配空间。
}

}

?释放二维数组

template <class T>
void make2dArray(T**& x, int numberofRows)
{
	//删除行数组空间
	for(int i = 0; i < numberofRows; i++)
	{
	delete[]x[i];
	delete x;//删除行指针。
	x = nullptr;
}

}


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

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