“传值和传址调用”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第6行: 第6行:
 
* 数据值是否改变
 
* 数据值是否改变
 
** 常量:只有右值,值不能改变
 
** 常量:只有右值,值不能改变
 +
*** 字符 'a'
 +
*** 字符串 "a"
 +
*** 整型 1、2
 
** 变量:有左值和右值,值可改变
 
** 变量:有左值和右值,值可改变
 
* 作用域
 
* 作用域
第17行: 第20行:
 
** 指针类型(type*)
 
** 指针类型(type*)
 
** 抽象数据类型(类类型)
 
** 抽象数据类型(类类型)
 +
 +
 +
=== 2)传值和传址调用 ===
 +
[[文件:传值和传址调用.png|无|缩略图|600x600像素]]
 +
{| class="wikitable"
 +
!传递方式
 +
!主要特点
 +
|-
 +
|传值调用
 +
|形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变
 +
|-
 +
|引用(地址)调用
 +
|形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。
 +
 +
 +
参数的左值为地址,右值为具体的值。
 +
|}

2022年9月15日 (四) 01:44的版本

https://www.bilibili.com/video/BV1hg411V7Bm?p=47

1)数据类型

数据类型

  • 数据值是否改变
    • 常量:只有右值,值不能改变
      • 字符 'a'
      • 字符串 "a"
      • 整型 1、2
    • 变量:有左值和右值,值可改变
  • 作用域
    • 全局变量:存储空间一般不变
    • 局部变量:存储空间动态变化
  • 数据类型
    • 基本类型(int/char/float double/bool)
    • 特殊类型(void)
    • 用户定义类型(enum)
    • 构造类型(数组、结构、联合)
    • 指针类型(type*)
    • 抽象数据类型(类类型)


2)传值和传址调用

传值和传址调用.png
传递方式 主要特点
传值调用 形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变
引用(地址)调用 形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。


参数的左值为地址,右值为具体的值。