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");
- 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;
}
- 给函数形参设定默认值
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; //两个值发生交换,正确
}