C

引用是已定义变量的别名.
C++引入引用变量的主要用途是用于函数的形参和函数的返回值。

使用引用参数:
1.当需要修改调用函数中的数据对象。
2.传递引用而不是整个数据对象,可以提高效率。

引用和指针的区别:

相同点
都是地址的概念,指针指向一块内存,内容就是指向内存的地址,而引用就是一块内存的地址.

不同点
1.引用仅是一个别名(不需要分配内存),而指针是一个实体(需要分配内存).
2.引用定义时必须初始化,且以后不可以改变,而指针不需要。
3.引用不可以为空(NULL),而指针可以为空.
4.引用不可是const类型的,而指针可以是,且const类型的指针和引用更相似.
5.引用无需解引用(*),而指针需要.
6.sizeof(引用)的值是所指向变量的大小,而sizeof(指针)的值是指针的大小(32位)是4.
7.引用和指针的自增(++)和自减(--)的含义不同.

引用没有指针灵活啊,一旦引用被绑定在一个对象上就不能够改变了,不可以再变成别的对象的引用,但是指针可以
,指针指向的地址可以任意更改,除了在常量区。

引用是别名,假设王小明字狗蛋;那么王小明是变量本身,狗蛋就是引用;给狗蛋100块和给王小明100块
本质上没有区别。同样,如果不小心干掉了狗蛋,王小明也完了。
指针不是王小明,但可以给王小明一个标签,上面写着“王小明”三个字,那个标签就是指针;你完全可以
把标签扔进茅坑,但王小明仍然是狗蛋。

-----------------------------------------------------------
6.1.4 对象数组
--------------------------
动态创建对象数组 page 180
--------------------------
6.4 字符串
(1)在C语言中用字符数组存放字符串,C++可以沿用此方法。
    a. 如果在给字符数组赋值时在末尾放置'/0',便构成了C++字符串。给字符数组直接赋字符串常量,这时末尾的'/0'是隐含的。下面3条语句等价。
     char str[8] = {'t','e','s','t','/0'};
     char str[8] = "test";
     char str[] = "test";
    b. 用字符数组存放字符串也可以对字符串进行整体输入输出。
(2)用String类

----------------------------------
表达式的副作用:
第一种
int a[10];
i = 0 ;
a[i]=i++;
=号左边需要进行一次计算,右边需要一次计算并且对i赋值。
这个时候问题来了,究竟是先a[i]还是i++;呢。这是一个不确定的问题,标准没有规定顺序,属于编译器自由发挥。先计算a[i]也可能先计算i++所以结果未知代码是错误的。
第二种
int i=0;
int j=0;
int add(int,int);
add( i + 1, i = j + 2 );
这里又有问题先进行i+1呢还是先进行i=j+2呢。答案也是顺序未知。因为i+1的值依赖i=j+2。
------------------------------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值