Նույն քանակով է կատարվում:
Սենց հաշվենք` m[i][j] պարագայում կատարվում է i*j անգամ: *p=m[i] դեպքում կատարվում է i անգամ, իսկ քանի որ յուրաքանչյուր p[i] համար, ինչպես ցույց տվեցի, կատարվում է j անգամ, ուստի նույնպես կատարվում է i*j անգամ
Բայց քանի որ յուրաքանչյուր տողի համար կատարվում է *p=m[i], ապա i անգամ կատարվում է հղման փոփոխականի վերագրում և հասցեի տրամադրում: Հենց սա էլ դանդաղացնում է:
Համ էլ արդեն գտել եմ` Դեյտելից գտա զանգվածների հետ ցուցիչներով ու հղումներով աշխատելու համեմատականությունը:
Ծրագրի համարժեքության տեսանկյունից այսպես է.
Օրինակ` ունենք
int b[5];
int x;
int *bPrt = b;
Ուզում ենք դիմել 3-րդ էլէմենտին
Իրար համարժեք են
1. x = b[2]
2. x = *(b+2)
3. x = bPtr[2]
4. x = *(bPtr+2)
Բայց այս գործողութոյւններից ավելի արագ են կատարվում առաջին 2-ը, քանի որ չկա միջանկյալ *bPtr = b գործողութունը, որն էլ իր հերթին է տակտեր վերցնում պրոցեսորից:
աղբյուր` Դեյտել C++ էջ 346-347
Էջանիշներ