初学者问有关问题:delphi默认初始化有关问题

菜鸟问问题:delphi默认初始化问题vari , j : integerb : shortstringbeginb : avaaaadfsaffor i :

菜鸟问问题:delphi默认初始化问题
var
  i , j : integer;
  b : shortstring;
begin
 b := 'avaaaadfsaf';
  for i := low(b) to high(b) do
  begin
  if b[i] = 'a' then
  j := j+1;
  end ;
  showmessage('字母a出现了' + inttostr(j) + '次');
这段代码如果不给i和j赋初值程序结果不对,我想问下如果不赋初值系统默认的会把赋那个值给局部变量,全局变量是否也一样。谢谢


[解决办法]
如果不默认的话,通常这个值是随机的,就是说,内存里面 i 和 j 当时的位置里面是什么,得到的就是什么。

用 for 循环的话,i 是被初始化为 low(b) 的,j 需要初始化。