C++资料(一)——初步认识C++

输入输出

C语言的输入与输出函数是scanf和printf函数,而C++增加了标准输入输出流cincout,使用它们需声明iostream头文件。
使用例:
cout:

int a=1,b=2;
cout<<"a="<<a<<"b="<<b<<endl;

cin:

int c;
cin>>c;

函数重载

C语言中规定同一作用域中不能有相同名字的函数,但C++允许在同一作用域中用同一函数名定义多个函数,这些函数的参数个数参数类型不相同,这些同名的函数可以分布实现不同的功能,这就是函数的重载,即一个函数名多用。
例:

int max(int a,int b,int c){
	if(b>a) a=b;
	if(c>a) a=c;
	return a;
}

float max(float a,float b,float c){
	if(b>a) a=b;
	if(c>a) a=c;
	return a;
}

long max(long a,long b,long c){
	if(b>a) a=b;
	if(c>a) a=c;
	return a;
}

函数模板

函数模板,指的是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表这个通用函数就称为函数模板。在调用函数时会根据实参的类型来联系模板中的虚拟类型,从而实现不同函数的功能。
定义函数模板的一般形式:

	template <typename T>
	通用函数定义
或
	template<class T>
	通用函数定义

使用例:

#include<iostream>
using namespace std;
template <typename T>
T max(T a,T b,T c){
	if(b>a) a=b;
	if(c>a) a=c;
	return a;
}

int main(){
int a1=1,a2=2,a3=3,a;
float b1=1.1,b2=2.2,b3=3.3,b;
long c1=1111,c2=2222,c3=3333,c;
a=max(a1,a2,a3);
b=max(b1,b2,b3);
c=max(c1,c2,c3);
cout<<"max-a:"<<a<<endl;
cout<<"max-b:"<<b<<endl;
cout<<"max-c:"<<c<<endl;
return 0;
}

变量的引用

在C++中,变量的引用就是指变量的别名,建立引用的作用是为了一个变量再起另一个名字,以便在需要时可以方便,间接地引用该变量。
例:

int a;
int &b=a;//声明b是一个整型变量的引用变量,它被初始化为a

经过这样的声明后,使用a和b的作用相同,都代表同一变量。
在上述声明中,&是引用声明符,此时它并代表地址,不要理解为把a的值赋给b的地址。
使用例:

#include<iostream>
using namespace std;
int main(){
	int a=10;
	int &b=a; 	//声明b是a的引用
	a=a*a;		//a的值变化了,b的值也要一起变化
	cout<<a<<b;
	b=b/5;		//b的值变化了,a的值也要一起变化
	cout<<a<<b;
	return 0;
}

运行结果:

100 100
20 20

内置函数

在编译时将所调用函数的代码嵌入到主调函数中,这种嵌入到主调函数中的函数称为内置函数,又称内嵌函数
指定内置函数的方法很简单,只需在函数首行的左端加一个关键字inline即可。
例:

#include<iostream>
using namespace std;
inline int max(int a,int b,int c){
	if(b>a) a=b;
	if(c>a) a=c;
	return a;
}

int main(){
	int i=1,j=2,k=3,m;
	m=max(i,j,k);
	cout<<"max="<<m<<endl;
	return 0;
}

运行结果:

max=3

程序分析:
在定义函数时指定它为内置函数,因此编译系统在遇到函数调用max(i,j,k)时,就用max函数体的代码代替max(i,j,k),同时将实参代替形参。这样,m=max(i,j,k)就被替换成

{
	a=i;b=j;c=k;
	if(b>a) a=b;
	if(c>a) a=c;
	return a;
}

动态分配/撤销内存的运算符

在C语言中,malloc和free是用来分配和撤销内存空间的,但使用malloc函数时必须要指定需要开辟的内存空间的大小,调用形式为malloc(size),size是字节数,需要事先求出或使用sizeof运算符求出。
此外,malloc函数只能从用户处知道应开辟空间的大小而不知道数据的类型,因此无法使其返回的指针指向具体的数据。其返回值一律为void * 类型,必须在程序中进行强制类型转换,才能使其返回的指针指向具体的数据。
C++提供了较为简单而功能较强的运算符new和delete
new运算符使用的一般格式为:

new 类型[初值]

使用new分配数组空间时不能指定初值

delete运算符使用的一般格式为:

delete[]指针变量

使用例:

#include<iostream>
#include<string.h>
using namespace std;
struct student{
	char name[10];
	int num;
	char sex;
};

int main(){
	student *p;
	p=new student;
	strcpy(p->name,"PAG");
	p->num=10110;
	p->sex='M';
	cout<<p->name<<" "<<p->num<<" "<<p->sex<<endl;
	delete p;
	return 0;
}

运行结果:

PAG 10110 M
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FFFPAG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值