| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 886 人关注过本帖
标题:关于C中*与&运算符的作用,自己总结的,不对之处请大家指正!
只看楼主 加入收藏
xninja
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-16
收藏
 问题点数:0 回复次数:5 
关于C中*与&运算符的作用,自己总结的,不对之处请大家指正!
A:
函数声明:int find(int* a);
函数调用:int b = 1;
          int n = find(&b);
这样调用时,实际上是进行了:int* a = &b,创建了一个新的指向b的整型指针a作为find函数范围内的局部变量。

B:
函数声明:int find(int& a);
函数调用:int b = 1;
          int n = find(b);
这样调用时,实际上是进行了:int& a = b,给变量b起了个别名a,也就是说a和b实际上代表的是同一个变量,调用期间没有创建任何新的变量。

C:
函数声明:int find(int a);
函数调用:int b = 1;
          int n = find(b);
这样调用时,实际上是进行了:int a = b,也就是普通的变量赋值操作,调用期间创建了在find函数范围内的局部变量a,它的值与b相同

D:&在用于计算时就是取变量地址,如int* a = &b,就是将整型变量b的地址取出,赋值给整型指针a,a中的内容就是b的地址,所以a指向b

E:*在用于计算时,就是取指针所指向的地址中的值,如int b = *a,就是将整型指针a指向的地址中存放的内容赋值给整型变量b
搜索更多相关主题的帖子: 运算符 
2008-11-16 18:07
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
C语言标准规定,传参相当于赋值,即传参操作是通过赋值操作定义的。
2008-11-16 18:09
xninja
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-16
收藏
得分:0 
[bo][un]风居住的街道[/un] 在 2008-11-16 18:09 的发言:[/bo]

C语言标准规定,传参相当于赋值,即传参操作是通过赋值操作定义的。

那意思就是参数列表中int& a的声明和int a的声明实际上是一样的咯?都是创建一个新的局部变量,将实参的值赋给这个形参?我问过别人第一种声明方式,说是起别名,自己没上机时间过,呵呵。。。
2008-11-16 18:21
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1686
专家分:4252
注 册:2007-12-27
收藏
得分:0 
貌似引用式参数是C++用法吧?
哪位指点我一下,C语言增加引用式参数了么?我咋不知道呢?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2008-11-16 18:49
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
咳咳……这里只讨论C,C++还要涉及隐式类型转换和重载选择的交叉问题,非常麻烦的。
2008-11-16 20:02
xninja
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-16
收藏
得分:0 
晚上回来用TC试了一下,C果然不能用int&的形式。。。
唉,国人写的书就不能严谨一点,用C实现数据结构还非要扯上C++,干脆用伪码实现更好。。。
2008-11-16 23:20
快速回复:关于C中*与&运算符的作用,自己总结的,不对之处请大家指正!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014591 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved