ドット演算子とアロー演算子の違いについて
参考記事では以下のように違いについて書かれていましたが、理解できないため、ベクトルのノルムを求めるリストの疑似コードにおいてどのように書かれるのか知りたいです。
ドット演算子は構造体やクラスに対してhoge.fugaのように使い、メンバにアクセスします。
アロー演算子は構造体やクラスを指すポインタに対してphoge->fugaのように使い、メンバにアクセスします。
phoge->fugaと(*phoge).fugaは同じ意味です。
該当擬似コード
構造体(ドット演算子の時)
strut cell{
int index;
double value;
struct cell* next;
}
ドット演算子
norm <- 0
next_address <- v
while next_address != NULL do
current_cell <- *(next_address)
norm <- (ベクトルの要素を2乗したものを足していくと考えられるが、擬似コードでどのようにかいたらいいかわからない)
next_address <- (現在のセルのポインタが指すインデックスだと考えられるが、似コードでどのようにかいたらいいかわからない)
return sqrt(norm)
アロー演算子(引用元は過去質問のご回答)
sum <- 0.0
while v != NULL do
sum <- sum + v->value * v->value
v <- v->next
return sqrt(sum)