C++面向对象程序设计之C++的初步知识(5)

int main()
{
int i=3,j=5;
swap(&i,&j);
cout<<i<<","<<j<<endl;    //5,3 实现两个变量的互换
system("pause");
return 0;
}

指针实现两个变量互换

程序分析:p,指向整数的指针;*p1指向i的指针,*p2指向j的指针,i,j实现互换内存。

4.3.传递变量的别名

因为用传递指针的方法比较麻烦,所以可以用传递别名的方法解决这个不足。

例1.12 使用“引入实参”实现两个变量的值的互换

#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
int temp;
temp = a;
a=b;
b=temp;
}

int main()
{
int i=3,j=5;
swap(i,j);
cout<<i<<","<<j<<endl;            //5,3 实现变量的互换
system("pause");
return 0;
}

传递别名实现两个变量的互换

在C++调用函数时有两种传递数据的方式,一种是常用的方法:将实参的值传给形参,形参是实参的拷贝,这种方式称为传值方式调用。另一种是将实参的地址传给引用型形参,这时形参与实参是同一个变量,这种方式称为引用方式调用。

引用小结:引用其实就相当于python中的赋值操作,不会开辟新的内存空间,它只是复制了对象的引用,也就是说除了b这个名字之外,没有其他的内存开销。修改了a,也就二印象了b,同理,修改了b,也就影响了a。

1.3.8 内置函数

指定内置函数的方法很简单,只需在函数首行的左端加一个关键字inline即可。

例1.13 将函数指定为内置函数

#include<iostream>
using namespace std;
inline int max(int a,int b,int c)        //这是一个内置函数,求3个整数中的最大者
{
if (b>a) a=b;
if (c>a) a=c;
return a;
}

int main()
{
int i=7,j=10,k=25,m;
m=max(i,j,k);
cout<<"max="<<m<<endl;   
system("pause");
return 0;
}

程序分析:

调用函数需要时间,内置函数在编译时直接将所调用函数嵌入到其中;即原来是调用,现在是替换后直接使用;

使用内置函数可以节省运行时间,但却增加了目标程序的长度。加入一个函数4行调用10次,原来4行,那么现在是40行了,大大增加了main函数的长度。因此只有对于规模很小且使用频繁的函数,才可大大提高运行速度。

1.3.9 作用域运算符

即全局变量和局部变量;全局变量用"::变量名"表示,如"::a"表示全局作用域中的变量a。C++提供作用域运算符":: ",它能指定所需要的作用域。

#include<iostream>
using namespace std;
float a=13.5;            //定义一个浮点型的全局变量a

int main()
{
int a=5;
cout<<a<<endl;            //输出局部变量a的值
cout<<::a<<endl;        //输出全局变量a的值
system("pause");
return 0;
}

程序分析:

在main函数中局部变量将屏蔽全局变量。

C++提供作用域运算符":: ",它能指定所需要的作用域。但应注意,不能用":: "访问函数中的局部变量。

1.3.10 字符串变量

双引号--->字符串,即多个字符

单引号--->字符,即单个字符

1.定义字符变量:

string string1;        //定义string1位字符串变量
string string2="China";        //定义字符串string2同时对其初始化
//要使用string类的功能时,在开头应包含“string”头文件,即#include<string> 没有.h

2.字符串变量的赋值


复制代码
string0="Canada";

string2=string1;   

string word="Then";        //定义并初始化字符串变量word
word[2]='a';                    //修改序号为2的字符,修改后word的值为"Than"

复制代码

3.字符串变量的输入输出

cin<<string1;
cout>>string2;

4.字符串变量的运算


复制代码
string1=string2;

string string1="C++";
string string2="Language";
string1=string1+string2;

// ==,<,>,!=,>=,<=

复制代码

5.字符串数组

不仅可以用string定义字符串变量,也可以用string定义字符串数组。如:


复制代码
#include<iostream>
using namespace std;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/704a395fc66352bfe16e015f30ba1748.html