Форум программистов, компьютерный форум, киберфорум
Наши страницы

Отличие char *argv[] от char ** argv - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ботописание http://www.cyberforum.ru/cpp-beginners/thread623458.html
Здравствуйте! Я хочу понять как работают боты для ММОРПГ игр. Насколько я понимаю необходимо читать виртуальную память игры и отправлять нажатие клавиш, так ли это? Если да, то как быть с тем, что...
C++ Плиз Мрочно нужно Люди плиз помогите! Завтра нужно сдать, а я ничерта не сделал. 1. В массиве Р, размерности 150 150. поменять местами первый и последний элементы; все единичные элементы массива заменить нулями. ... http://www.cyberforum.ru/cpp-beginners/thread623451.html
C++ Сформировать файл F, компонентами которого являются целые числа
Сформировать файл F, компонентами которого являются целые числа ci=2i+3i+1. Количество чисел равно n, где n-натуральное число. Переписать компоненты файла F в файле G с отрицательным знаком....
C++ ООП
Прочитал в википедии про ООП, но так толком и не понял. Подскажите, чем является создание программ с интерфейсом, допустим как калькулятор в винде? И есть ли книги по этому поводу, или все книги...
C++ Почему не сортируется вектор структур? http://www.cyberforum.ru/cpp-beginners/thread623433.html
Выводится ошибка c:\qtsdk\mingw\bin\..\lib\gcc\mingw32\4.4.0\include\c++\bits\stl_algo.h:89: error: passing 'const Task' as 'this' argument of 'bool Task::operator<(const Task&)' discards qualifiers...
C++ Вывести на экран все элементы пятой строки массива дан двумерный массив. Вывести на экран: Все элементы пятой строки массива; Все элементы третьей строки массива, начиная с последнего элемента этой строки; Все элементы s-го столбца массива; Все... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18247 / 6372 / 438
Регистрация: 30.03.2009
Сообщений: 17,635
Записей в блоге: 28
16.07.2012, 08:14
alsav22, наоборот, они идентичны. Потому что когда в параметре процедуры описан массив без указания размерности (да даже если и с указанием), то он эквивалентен тому, что там описан указатель. Т.е. следующие записи эквивалентны

C
void func1 (int *p)
{
  *p = 0;
  p++;
  *p = 1;
}
 
void func2 (int p[])
{
  *p = 0;
  p++;
  *p = 1;
}
В случае argv мы имеем по сути тот же самый пример, но там идёт замена "int" на "char*", что приводит к эквивалентности записей "char **argv" и "char *argv[]". НО ТОЛЬКО в том случае, когда речь идёт о параметре функции. Потому что массив всегда передаётся по косвенности. Вот так порешили авторы языка Си, хотя интуитивно по синтаксису кажется, что это не так
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru