c语言引用函数内部变量值,c++第八章__内联函数__引用变量

本文详细介绍了C++中的内联函数和引用的概念。内联函数用于优化程序,提高执行效率,但可能导致代码体积增大。文章通过示例解释了内联函数的使用及其与普通函数调用的区别,并提醒注意宏定义可能产生的问题。同时,文章讲解了引用的特性,它是变量的别名,必须在声明时初始化,且一旦绑定不能改变。通过实例展示了引用的使用和其与指针的区别。
摘要由CSDN通过智能技术生成

目录:

内联函数

/*

01)c语言中的宏,例如:

#define SQUARE(X) X*X

a = SQUARE(5.0); //等价于a = 5.0*5.0 正常

b = SQUARE(4.5+7.5) //等价于b = 4.5+7.5*4.5+7.5,则不

正常了,可以通过#define SQUARE(X) ((X)*(X))方法改进

d = SQUARE(c++) //等价于d = c++ * c++ c最后的值会增加两次 假如c等于3 c++ * c++就等价于3*4 最后c等于5,

而在宏定义出现类似的错误的时候,可以考虑使用内联函数

02)要是有内联函数,要采取下述措施之一:

在函数生命前加上关键字inline

在函数定义前加上关键字inline

通常的做法是省略原型(函数声明),将整个定义放在本应提供原型(函数声明)的地方

03)内敛函数可以提高程序的执行速度,代价是 程序占用的

内存增加,假如程序要在10个不同的地方调用同一个内联函数,则该程序将包含该函数代码的十个副本

04)以下代码中也包含了c++后缀的使用技巧,需要注意的一个点

*/

附图说明普通函数调用和内联函数调用的区别

d3fb8580c61782423dfd3fb5d174764a.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2

3 using namespace std;

4

5 //内联函数的定义

6 inline double square(double x) { return x * x; } //将整个函数定义放在了一行,如果函数定义占用多行,那么使用内联函数就不太合适

7

8 int main()

9 {

10 double a, b;

11 double c = 13.0;

12

13 a = square(5.0); //内联函数的调用

14 b= square(4.5+7.5); //内联函数的调用

15 cout << "a = " << a << endl;

16 cout << "a = " << b << endl;

17

18 cout << "c = " << c;

19 double d = square(c++); //后缀运算符是先使用后修改,所以c先将13传入内联函数,后将自身值递增为14

20 cout << " c square = " << d << endl;

21

22 cout << "Now c = " << c << endl;

23

24 system("pause");

25 return 0;

26 }

内联函数的定义和调用

执行结果:

f8d918a4876fc6e93037535bd0001d45.png

引用变量(锚点为m2)

/*

01)c和c++使用&来指示变量的地址。c++赋予了&另一个含义,将其用来声明印用

int rats;

int & rodents = rats; //将rodents作为rats的别名 int &表示是指向int的引用,其中&不是地址运算符

上述声明允许将rats和rodents呼唤,他们指向相同的内存单元,将rodets加1将会影响两个变量

更准确的说rodents++操作将一个有两个名称的变量加1

02)必须在声明引用时将其初始化 如:

int rats;

int & rodents;

rodents = rats; //这样做是错误的

03)引用和指针是有区别的

int rets;

int* parts = &rats; //声明并初始化一个指针parts,该指针指向rats

int & rodents = rats; //声明并初始化一个引用rodents,使rodents成为rats的别名

这样表达式rodents和*parts都可以和rats呼唤,而表达式&rodents和parts也都可以和&rats互换

04)引用更接近于const指针,必须在创建时进行初始化,一旦与某个变量关联起来,就一直效忠于它

也就是说:int & rodents = rats;

实际上是该代码的伪装表示:int* const pr = &rats;

其中引用扮演的角色与表达式*pr相同

05)int rats = 101;

int* pt = &rats; //声明并初始化一个指针parts,该指针指向rats

int & rodents = *pt; //由于*pt就等价于rats,所以该句的意思就是声明并初始化一个引用rodents,使rodents成为rats的别名

int business = 50;

pt = &business; //pt改为指向business,但是rodents还是指向rats

*/

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 #include

2

3 using namespace std;

4

5 int main()

6 {

7 int rats = 101;

8 int & rodents = rats; //声明并初始化一个引用rodents,使rodents成为rats的别名

9

10 cout << "value of rats is: " << rats << "; " << "Address of rats is: " << &rats << endl;

11 cout << "value of rodents is: " << rodents << "; " << "Address of rodents is: " << &rodents << endl;

12

13 int business = 50;

14 rodents = business; //等价于rats = business,执行完此句之后,rats和rodents的值都会改变为50,且二者的地址相同,但二者的地址和business是不一样的

15 cout << "value of business is: " << business << "; " << "Address of business is: " << &business << endl;

16 cout << "value of rats is: " << rats << "; " << "Address of rats is: " << &rats << endl;

17 cout << "value of rodents is: " << rodents << "; " << "Address of rodents is: " << &rodents << endl;

18

19 system("pause");

20 return 0;

21 }

引用变量的声明和初始化

执行结果为:

3a51e369728402c8d251b50004d638eb.png

标签:__,rats,函数,int,c++,rodents,内联

来源: https://www.cnblogs.com/YiYA-blog/p/10546023.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值