趣味题:考考你的Delphi基础,该怎么处理

趣味题:考考你的Delphi基础
活跃一下D版的气氛,出个趣味只是题。

下面的代码中,定义了一个记录类型,定义了2个同名的方法(同不同名无所谓),v1和v2的x字段都初始化为10,分别调用2个方法后。提问:
1、v1.x与v2.x的值分别为多少?(要求不要在机上测试)
2、加入从记录定义中去掉y字段,v1.x与v2.x的值又分别为多少?(要求不要在机上测试)
3、为什么会是这样的结果?希望大家讨论。


Delphi(Pascal) code
type
  TTest = record
    x: Integer;
    y: Integer;
  end;

procedure IncX(var v: TTest); overload;
begin
  Inc(v.x);
end;

function IncX: TTest; overload;
begin
  Inc(Result.x);
end;

var
  v1, v2: TTest;
begin
  v1.x := 10;
  v2.x := 10;
  v1 := IncX;
  IncX(v2);
end;



------解决方案--------------------
发现自己的基础不是一般地差:)
口算的一个都不对:(
------解决方案--------------------
v1.x 1
v2.x 11

不知道对不对
------解决方案--------------------
1、值相同;
2、值不同;
3、为什么呢?期待高人回答...
------解决方案--------------------
sdfdsfsdgdfgfdgfdgfdgfd
------解决方案--------------------
jjjjjj
------解决方案--------------------
口算:值没变吧.

沉默中...
------解决方案--------------------
讲的不错非常有价值!
------解决方案--------------------
原来真的很差..
------解决方案--------------------
原来真不行
------解决方案--------------------
绕晕了
1.都是11?
2.不变?
3.难道没有参与计算的Y字段也影响结果?
------解决方案--------------------
1 结果都是11
2 v1 结果随机 v2 结果11

v1是局部变量的时候是直接把v1当result的
如果改成全局变量result是栈中的另一块地址 返回后再赋值给v1 这样的话就得到随机的值了

当v1只有一个integer的字段的时候 好像就没有特殊处理
------解决方案--------------------
不都是11吗?
------解决方案--------------------
v1 := IncX;
这样的赋值?
 没见过
------解决方案--------------------
不会啊
------解决方案--------------------
不错哦
------解决方案--------------------
学习
------解决方案--------------------
很不错支持一下哈哈
------解决方案--------------------
v1 := IncX;
这样的语句不懂, 
偶是delphi新手
------解决方案--------------------
不用说了,请楼上马上结贴,回答!
------解决方案--------------------
等100楼
------解决方案--------------------
此贴很好,很强大。
------解决方案--------------------
支持下,不会
------解决方案--------------------
1.都是11?
2.不懂y怎么影响的。
------解决方案--------------------
buhui

------解决方案--------------------
以前看到过一个“为什么对象不创建也能用”的问题,可能跟那个问题原因差不多。

等楼主解释。。。
------解决方案--------------------