نقل قول: سوال در مورد pointer ها
سلام
دستوری که شما مینویسین p3=p3+1 خود کامپایلر تشخیص میده که به ازای این یک واحدی که شما در واقع دارین به آدرس p3 اضافه میکنید چند بایت از حافظه باید جلو بره تا به مکان بعدی آرایه برسه. اگه شما به جای چاپ محتوا بیاین آدرس خونه ها رو چاپ کنید مشاهده میکنید که با اضافه کردن این یک واحد 8 بایت به آدرس خونه ی مورد نظر اضافه شده.
نقل قول: سوال در مورد pointer ها
دقیقا همانطور که BeginnerProgrammer گفتند، این ۱ واحد به اندازه نوع یک خانه در حافظه به جلو میرود، یعنی:
p3 = p3 + 1;
معادل است با:
p3 = (double*)(*(unsigned int*)&p3 + sizeof(*p3));