السلام عليكم
نشاهد المتال :
#include <iostream.h>
int main()
{
char a[]="soufiane";
a[2]=a[3]; // 1
*(a+2) = *(a+3); // 2
for (int i=0;i<8;i++)
{
cout << a;
}
cout << endl;
system("PAUSE");
return 0;
}هناك الطريقة 1
a[2]=a[3];
والطريقة 2
*(a+2) = *(a+3);
لمادا التانية اسرع من الاولى ؟ ففي الاولى لدينا a عبارة عن مؤشر على عنوان اول خلية في الـArray
وهدا يعني ان نأخد القيمة المخزنة في العنوان الدي يبعد عن a بتلات خانات ونضعه في العنوان الدي يبعد عن a بخانتين
الحالة 2 لدينا Pointer + Integer = Adress وقمنا بعمل مؤشر على هدا العنوان تم عملنا عملية تبادل بين القيمة المخزنة في هدا العنوان والقيمة الاخرى
سؤالي هو اين تتجلى السرعة ؟
فالاولى نتعامل مع عنوانين لان a هو اصلا Pointer والتانية نتعامل ايضا مع Pointer

