Многие у себя в блогах публикуют разные головоломные задачки, а тут как раз сегодня у сотрудника возникла ситуация над которой мы некоторое время помедитировали, пока не пришел nimblemag и не обьяснил. Код, собственно, ниже. Код рабочий. Обьяснить почему работает.
Ответ ниже белым по белому (да, такой способ я у Эльдара Мусаева подсмотрел) чтоб посмотреть выделяем текст
===отсюда===
На самом деле все просто и вытекает из комутативности операции сложения:
#include <cstdlib>
#include <iostream>
using namespace std;
int main (int argc, char** argv){
cout<<(*argv+(argc-1))<<endl<<((argc-1)+*argv)<<endl;
cout<<*(argv+(argc-1))<<endl<<*((argc-1)+argv)<<endl;
return EXIT_SUCCESS;
}
===досюда===
Отдельное Спасибо White Knight за нахождение ошибки в коде ответа(см. комментарии).
#include <cstdlib>
#include <iostream>
using namespace std;
int main (int argc, char** argv){
cout<<argv[argc-1]<<endl
<<argc[argv-1]<<endl;
return EXIT_SUCCESS;
}
Ответ ниже белым по белому (да, такой способ я у Эльдара Мусаева подсмотрел) чтоб посмотреть выделяем текст
===отсюда===
На самом деле все просто и вытекает из комутативности операции сложения:
#include <cstdlib>
#include <iostream>
using namespace std;
int main (int argc, char** argv){
cout<<*(argv+(argc-1))<<endl<<*((argc-1)+argv)<<endl;
return EXIT_SUCCESS;
}
===досюда===
Отдельное Спасибо White Knight за нахождение ошибки в коде ответа(см. комментарии).