【C/C++】String类及其常用成员函数、

1. c++中string类及其常用函数
2. C++中引用类型及引用传递
3. 给函数形参设定默认值
4. 函数形参及传递
5. 指针做形参传递时的一个小发现

1. c++中string类及其常用函数

	string text1{ "Heavy rains are pushing water levels beyond the limit." };  //用string类来定义字符串
	string text2, text3;
	int k;
	text2 = "Sluice gates at Three Gorges Dam opened to discharge water.";
	text3 = text1 + text2;
	cout << text3 << endl;

	k = text3.find("Heavy");//在text3中查找Heavey,并返回 H 所在位置
	text3.erase(k,sizeof("Heavy")-1);  //从text中删除Heavy.
	text3.insert(k, "Strong");
  1. C++中引用类型及引用传递
    在这里插入图片描述

作用:
(1) 函数间的引用传递,来直接操作实参变量内存。

	int a = 1, b = 2;								  //定义一个a变量的引用变量b
	cout << &a << "  " << &b << endl;  	 //输出变量地址  地址一样
	cout << a << "  " << b << endl;			 //数值一样

利用应用传递直接操作实参变量

int main()
{
	int a = 1, b = 2;  

	cout << a << '\t' << b << endl;   //1    2
	swap(a, b);
	cout << a << '\t' << b << endl;   // 2   1
	system("pause");
	return 0;
}
void swap(int &x, int &y)
{
	int temp;
	temp = x;
	x = y;
	y = temp;
}

  1. 给函数形参设定默认值
    C++ 中可以给自定义的函数形参设定默认值,这样在没有实参传入时,形参使用默认值;同时也可以部分设定默认值,但是设定默认值顺序为从右到左,依次设定默认值。不能交叉。

例如,

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

调用格式:
swap();  //正确,形参x y使用默认值
swap(1);  //正确,形参x =1,y=0使用默认值
swap(1,2);  //正确,形参x =1,y=2使用实参

4. 函数形参及传递

C/C++ 中函数传递方式:
(1) 值传递;——C/C++
(2) 引用传递 ;——C++
(3) 指针传递;

数组元素作为函数实参,对应形参为 变量,每次传递一个数值,为值传递;
数组名作为函数实参,对应形参为数组,一次传递整个数组,其中形参数组和是参数组公用同实参数组内存空间,改变形参数组即可改变实参数组。类似于引用传递。——c/c++一致的

结构体变量作为函数实参,对应形参为同类型结构体,为值传递,注意,对形参结构体成员的修改不影响实参结构体。

5. 指针做形参传递时的一个小发现

传递两个值的指针进入函数,对两个值进行交换的程序。看着很简单,但第一还是错了。。。


void swap(int* p1, int *p2)
{
	int *t = p1;     //*t = *p1
	*p1 = *p2;    // *t = *p1 = *p2;
	*p2 = *t;			 //*p2 = *t = *p1   最终两个值都有p2所指参数的值,没有发生交换,并且发生错误
}


// 指针只认地址,不认数据


void swap(int* p1, int *p2)
{
	int t = *p1;   
	*p1 = *p2;		 
	*p2 = t;    //两个值发生交换,正确
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值