关于c++:C-指针和引用

60次阅读

共计 682 个字符,预计需要花费 2 分钟才能阅读完成。

援用和指针的区别和分割

1. 援用只能在定义时初始化一次,之后不能扭转指向其它变量(从一而终);指针变量的值可变。

2. 援用必须指向无效的变量,指针能够为空。

3. sizeof 指针对象和援用对象的意义不一样。sizeof 援用失去的是所指向的变量的大小,而 sizeof 指针是对象地址的大小。

4. 指针和援用自增 (++) 自减 (–) 意义不一样。

5. 相对而言,援用比指针更平安。

★不同点:

1. 指针是一个实体,而援用仅是个别名;

  1. 援用应用时无需解援用(*),指针须要解援用;
  2. 援用只能在定义时被初始化一次,之后不可变;指针可变;
  3. 援用没有 const,指针有 const;const 润饰的指针不可变;
  4. 援用不能为空,指针能够为空;
  5. “sizeof 援用”失去的是所指向的变量 (对象) 的大小,而“sizeof 指针”失去的是指针自身 (所指向的变量或对象的地址) 的大小;

7. 指针和援用的自增 (++) 运算意义不一样;

8. 从内存调配上看:程序为指针变量分配内存区域,而援用不须要分配内存区域。

★相同点:两者都是地址的概念,指针指向一块儿内存,其内容为所指内存的地址;援用是某块儿内存的别名。

函数参数传递中值传递、地址传递、援用传递有什么区别?

(1) 值传递,会为形参重新分配内存空间,将实参的值拷贝给形参,形参的值不会影响实参的值,函数调用完结后形参被开释;

(2) 援用传递,不会为形参重新分配内存空间,形参只是实参的别名,形参的扭转会影响实参的值,函数调用完结后形参不会被开释;

(3) 地址传递,形参为指针变量,将实参的地址传递给函数,能够在函数中扭转实参的值,调用时为形参指针变量分配内存,完结时开释指针变量。

正文完
 0