李然 发表于 2013-12-9 15:28
调用leftshift(a, b),输出a是5因为在题中也就是把5和2这两个值传给调用的函数leftshift(),但是main函数里 ...
王尧 发表于 2013-12-9 15:36
楼上说的很清楚了,如果你想得到7可以把代码修改成酱紫:
王新年 发表于 2013-12-9 16:36
原因是leftshift(int a, int b)方法中操作的是局部变量即方法中的参数a和b ,该变量和main()方法中的a和b ...
熊猫86 发表于 2013-12-9 16:28
同上,麻烦请教下怎么确定上个是形参,而数组这个就是实参,谢谢
王尧 发表于 2013-12-9 17:00
1.首先你这个创建了一个数组,在栈内存中开辟了main, arr。在堆内存中开辟了数组{1,2},其有个地址值赋给 ...
熊猫86 发表于 2013-12-9 16:26
为什么上个函数调用的是两个形参,而下面的数组就可以用函数直接操作呢,为什么数组这个改变的不是形参呢 ...
赵青超 发表于 2013-12-9 17:08
方法中形参是基本数据类型和是引用数据类型有什么区别捏?
基本数据类型,传递的是变量数据本身,引用数据 ...
李然 发表于 2013-12-9 17:49
兄弟,这个问题应该可以这么理解,虽然说函数swap()接收的 int[] arr也是一个形参,但是这个形参是在 ...
熊猫86 发表于 2013-12-9 17:58
谢谢,其实单纯解释数组这个例子是很明显的,但是基本数据类型的那个leftshift(a,b)到底在内存中发生了什 ...
李然 发表于 2013-12-9 18:08
个人理解就是在运行leftshift方法时栈内存中又追加了两个int型的变量,方法结束时,改变了新追加的a的值 ...
熊猫86 发表于 2013-12-9 18:21
你的意思似乎letfshift(a,b)中的a和b不是main中定义的a和b,那是如何知道传入的两个参数为int型的呢?而 ...
李然 发表于 2013-12-9 18:36
在函数括号内的参数列表中定义的int。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |