下記サイトを見て思ったのですが、単に引数aとbが指し示すオブジェクトを変えただけ
で(a = a + 1)、実引数のほうは変化していないので値渡しだと言っているのには
ちょっと違和感を感じます。

後述に、Arrayオブジェクトを例に出して、参照の値渡しの話をしていますが、
これだと、まるでFixnumオブジェクトの場合は、同じ値の新しいオブジェクトを作って
それを渡す値渡しで(Fixnumでは値が同じで異なるオブジェクトというのはない気はしますが)、
Arrayオブジェクトだと参照の値渡しになると言っている感じがします。

まだRubyを学び始めて間もないので、私の勘違いかもしれませんが、皆さんはどう
思われますか?

Rubyist Magazine - 値渡しと参照渡しの違いを理解する
http://jp.rubyist.net/magazine/?0032-CallByValueAndCallByReference

def foo(a, b) # a, b を「仮引数」という
a += 1
b += 2 # a と b を変更する
end

x = 10
y = 20
foo(x, y) # x, y を「実引数」という
puts x #=> 10 # 変更されてない
puts y #=> 20 # 変更されてない