когда я использую #define
функция, я наблюдаю что-то странное. В приведенном ниже коде, если я дал i
значение как '10'
с ввода i
получил выход как 132
. Однако, если я объявляю i=10
, комментируя 10,12 и 13 строк, тогда мой вывод 144
. может ли кто-нибудь объяснить мне, как это происходит? заранее спасибоошибка с определением определения макроса
#include <iostream>
using namespace std;
#define Double(X) X*X
int main()
{
//int i=10;
int i;
cout<<"Enter the i values:" <<endl;
cin>>i;
cout<<"Values is:"<<Double(++i)<<endl;
return 0;
}
да я понимаю, что это ++ я * ++ я, но почему результат изменяется для обоих cases.I означает, что если я объявляю «i = 10», тогда мой результат равен 132. Также, если я предоставляю значение «i» с использованием cin, результат равен 144. – user2413497
@ user2413497 это то, что мы говорим [неопределенное поведение] (http: // en .wikipedia.org/вики/Undefined_behavior)! –
@ phant0m Я помню тебя :) спасибо! –