printf("%s\n", **argv); // ожидался вывод полного имени
Помогите разобраться в чём я не прав. Просто вопрос фундаментальный и хотелось разобраться в нем досконально. Следующий код в VS 2013 компилируется, но при запуске выдаёт ошибку. #include "stdafx.h"#include
int main(int argc, char* argv[])
{
printf("%s\n", **argv); // ожидался вывод полного имени
return 0;
}
Рассуждения такие. Если в функцию main передаётся указатель на массив указателей т. е.
это указатель на указатель, то первое раскрытие ссылки *(argv + 0) даёт указатель на строку с первым параметром
командной строки, а второе раскрытие ссылки **(argv + 0) даёт собственно эту строку L