查看“传值和传址调用”的源代码
←
传值和传址调用
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV1hg411V7Bm?p=47 === 1)数据类型 === 数据类型 * 数据值是否改变 ** 常量:只有右值,值不能改变 *** 字符 'a' *** 字符串 "a" *** 整型 1、2 ** 变量:有左值和右值,值可改变 * 作用域 ** 全局变量:存储空间一般不变 ** 局部变量:存储空间动态变化 * 数据类型 ** 基本类型(int/char/float double/bool) ** 特殊类型(void) ** 用户定义类型(enum) ** 构造类型(数组、结构、联合) ** 指针类型(type*) ** 抽象数据类型(类类型) === 2)传值和传址调用 === [[文件:传值和传址调用.png|无|缩略图|600x600像素]] {| class="wikitable" !传递方式 !主要特点 |- |传值调用 |形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变 |- |引用(地址)调用 |形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。 参数的左值为地址,右值为具体的值。 |} === 2)传值和传址调用 === ==== 传值调用 ==== <syntaxhighlight lang="c"> void swap(int x, int y) { int t; t = x; x = y; y = t; printf("%d %d", x, y); } main() { int a = 3, b = 4; swap(a, b); printf("%d %d", a, b); } </syntaxhighlight> [[文件:传值调用.png|无|缩略图]] ==== 传址调用 ==== <syntaxhighlight lang="c"> void swap(int *x, int *y) { int a, *t=&a; *t = *x; *x = *y; *y = *t; printf("%d %d", *x, *y); } main() { int a = 3, b = 4; swap(&a, &b); printf("%d %d", a, b); } </syntaxhighlight> [[文件:传址调用.png|无|缩略图]] === 考点1:参数传递差异 === 程序语言提供的传值调用机制是将()。 A、实参的值传递给被调用函数的形参 √ B、实参的地址传递给被调用函数的形参 C、形参的值传递给被调用函数的实参 D、形参的地址传递给被调用函数的实参 === 考点2:传值和传址调用 === 函数fun1()、fun2()的定义如下:<syntaxhighlight lang="c"> fun1(int x) { int a = x - 1; x = fun2(a); return a - x; } fun2(int x) { x = x + 10; return 3 * x; } </syntaxhighlight>所示,已知调用fun1时传递给形参x的值是-5,若以引用调用(call by reference)的方式调用fun2,则函数fun1的返回值为();<syntaxhighlight lang="c"> fun1(int x) { int a = x - 1; x = fun2(&a); return a - x; } fun2(int *x) { *x = *x + 10; return 3**x; } </syntaxhighlight>A、-18 B、-11 C、-8 √ D、0 若以值调用(call by value)的方式调用fun2,则函数fun1的返回值为()。 A、-18 √ B、-11 C、-8 D、0
返回至
传值和传址调用
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息