ترمینال آزاد

چرت نویس های یک مهندس بیکار

تفاوت در افزایش یک واحدی متغیر در زبان C

داشتم یه کتابی می‌خوندم که به نکته‌ای برخوردم که در عین سادگی تا حالا باهاش روبرو نشده بودم؛ که دلیلش هم متفاوت بودن شیوه کدنویسی من با نویسنده کتاب هستش. تو زبان C به دو طریق میشه داده‌ای (به طور فرض x) رو افزایش داد. هم میشه نوشت ++x و هم x++. تو هر دو یک واحد به مقدار x اضافه میشه ولی وقتی بخوایم مقدار جدید را در متغیر دیگه‌ای (به طور مثال y) جاگذاری کنیم قضیه فرق می‌کنه.

وقتی که مینویسیم ++y=x، ابتدا مقدار کنونی x داخل y قرار داده میشه و بعدش به x یک واحد اضافه میشه. ولی وقتی می‌نویسیم y=++x اول یک واحد به x اضافه میشه و بعد مقدار جدید x داخل y جاگذاری میشه. اگه بخوام مثال بزنم با فرض اینکه مقدار اولیه x=5 هستش. در مورد اول نتیجه میشه y=5 و x=6 ولی در مورد دوم نتیجه میشه y=6 و x=6

البته راه ساده‌تر که موجب میشه گرفتار این اشتباهات نشیم اینه که همچین کدی رو اینطوری بنویسیم:

x++;
y=x;