要过二级,至今不知道如何区分指针传递与值传递

[复制链接]
查看11 | 回复5 | 2012-2-2 10:24:47 | 显示全部楼层 |阅读模式
所谓的地址传递,实际上仍然是值传递,只不过传递的值是一个地址而已。地址传递时,参数肯定是个指针,这个指针的值就是他指向的地址, 进行参数传递时会把指针指向的地址传给形参指针。但是你实际上用的不是地址,而是地址内的值。由于地址是唯一的,所以值的修改能在函数结束后保留。你可以试试在函数内给传来的形参指针重新指向一个地址(不是修改值),函数结束后实参的指针是不会发生变化的 貌似说的深了点。。。其实你就是想知道什么时候修改结果在退出函数会保存吧,二级的话,假如函数的参数是 int* p 或者 int p[]的形式,就可以保存结果...
回复

使用道具 举报

千问 | 2012-2-2 10:24:47 | 显示全部楼层
注意函数括号里的参数形式就行了如果参数不是指针的形式,就是值传递。例如:int fun(int x, char y)如果参数是指针的形式,就是指针传递。例如:int fun(char str[], int *x)...
回复

使用道具 举报

千问 | 2012-2-2 10:24:47 | 显示全部楼层
指针传递(地址传递):即将一个变量(如a)的物理存储地址换了。值传递
:变量(如a)的物理存储地址不变,而是将地址所指空间里的值换了。你可以拿两个典型例题来进行比较,多比较几次就清楚了,...
回复

使用道具 举报

千问 | 2012-2-2 10:24:47 | 显示全部楼层
指针传递是传递的是地址,而值传递一般表示将实参值传递给形参。...
回复

使用道具 举报

千问 | 2012-2-2 10:24:47 | 显示全部楼层
http://zhidao.baidu.com/question/296117351.html你看下这个吧不明白的追问...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行