C++(1)

本文介绍了C++的基础知识,包括预处理指令#include、命名空间std的使用,常量定义,函数声明与定义,函数重载,以及变量引用的概念。通过实例展示了如何使用引用实现变量间的双向赋值,以及在函数参数中使用引用以实现值的真正交换。同时,对比了传值和传引用在函数调用中的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
using namespace std;
int main(){
	cout << "hello world";
	return 0;
} 

上面是C++的第一个程序
分析:

#include<iostream>

(1)为预处理命令,其中 <> 中的为头文件(提供输入/输出的所需要的一些信息)

//为命名空间
using namespace std;
//可以通过#include"std",表示要用到命名空间std中内容
#include"std"

const 定义常变量

//具有变量的属性,有数据类型,占有存储单元,有地址,可以指针指向它
const float PI = 3.14159;

#define PI = 3.14159;
为字符置换,没有类型,不是变量,容易出错

函数的声明
在C++中,如果函数调用的位置在函数定义之前,则要求在函数调用之前必须进行声明
语法:
函数type name(形参);

#include<iostream>
using namespace std;
//函数的声明 
int max(int a,int b);
int main(){
	cout << "hello world";
	cout << "最大的数是:" << max(8,18);
	return 0;
} 
//函数的定义 
int max(int a,int b){
	if(a > b){
		return a;
	}else{
		return b; 
	}
}

函数重载
在同一作用域中用同一个函数名定义多个函数,但参数个数或参数类型,或者函数类型不同
有默认参数值的函数

#include<iostream>
using namespace std;
 
int getX(int x = 8);
int main(){
//getX() 相当于getX(8)
	cout << "X的默认值:" << getX();
	return 0;
} 
int getX(int x){
	return x;
}

注意:
(1)指定默认值的参数定义须放在形参的最右边

int max(int a,int b = 4,int c,int d = 7)  //错误
int max(int a ,int c ,int b = 4,int d = 7); //正确

(2)在函数调用之前需要对其声明,而默认值在声明的时候给出
(3)一个函数不能即作为重载函数,又作为有默认参数值的函数
变量的引用 : 为变量起别名

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

注意:对一个变量声明一个引用,并不为其开辟新的存储单元

#include<iostream>
using namespace std;
 
int main(){
	int a = 12;
	int &b = a;
	a = a * a;
	cout << "a 的值:" << a; 
	b = b - 2;
	cout << "b 的值 :" << b;
	return 0;
} 

上述代码输出的值是: a 144 ,b 142
可以总结出:a 的值变化,b的值也随之变化,同样,b 的值变化,a的值也随之变化
那么当看到&b 这样的形势怎么区别是声明引用还是取地址?
当&b前面有类型符号时,必是引用声明,反之是取地址

将引用作为函数参数
(1)将变量作为参数:
这时传给形参的是变量的值,但是当形参改变时,并不会传递给实参,此时形参和实参不是同一个存储单元,即传递是单向的

#include<iostream>
using namespace std;

void swap(int x,int y);
int main(){
	int a = 5;
	int b = 8;
	swap(a,b);
	cout << "a 的值:" << a;
	cout << "b的值:" << b; 
	return 0;
} 

void swap(int x,int y){
	int temp;
	temp = x;
	x = y;
	y = temp;
}

输出结果a,b 的数值并没有交换

为解决上述问题:可以传递是变量的地址

#include<iostream>
using namespace std;

void swap(int *x,int *y);
int main(){
	int a = 5;
	int b = 8;
	swap(&a,&b);
	cout << "a 的值:" << a;
	cout << "b的值:" << b; 
	return 0;
} 

void swap(int *x,int *y){
	int temp;
	temp = *x;
	*x = *y;
	*y = temp;
}

输出结果:a ,b的值交互
通过引用解决

#include<iostream>
using namespace std;

void swap(int &x,int &y);
int main(){
	int a = 5;
	int b = 8;
	swap(a,b);
	cout << "a 的值:" << a;
	cout << "b的值:" << b; 
	return 0;
} 

void swap(int &x,int &y){
	int temp;
	temp = x;
	x = y;
	y = temp;
}

注意:
(1)不能建立void 类型的引用
(2)不能建立引用的数组

char c[3] = "abv";
char &rc[3] = c;  //错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值