В последнем уроке я рассказал вам о тонкой разнице между функциями gets () и scanf (). Помимо этого я также рассказал вам о двух способах печати строк на экране. Вооружившись базовыми концепциями струн, мы сможем продвинуться вперед, чтобы изучить некоторые передовые темы струн. Сегодня я расскажу вам об использовании строк с указателями и расскажу о двумерном массиве символов.
Строка в C
Строки и указатели
Строки могут быть сохранены двумя способами. Первое совершенно очевидно, что мы использовали до сих пор. Во втором методе мы можем хранить строки в символьном указателе. Ниже приведен один маленький пример.
Первый из них вам хорошо знаком. Но второй немного другой. Во втором мы сохраняем адрес первого символа строки в символьном указателе. Когда компилятор сталкивается с этим, он сразу же сохраняет всю строку в каком-то месте и сохраняет ее базовый адрес в символьном указателе.
Теперь вопрос на миллион долларов, который поразит вас. Какой из них лучше и почему?
Ну, ответ зависит от условия или ситуации, в которой мы должны использовать строки. Но все же программисты обычно предпочитают второй метод, потому что он дает им некоторую гибкость.
Ниже приведены два примера таких условий.
Пояснение
Как вы видите, мы не можем напрямую скопировать одну строку в другую. Это приведет к ошибке. Зачем? Это связано с тем, что при доступе к имени строки мы получим только базовый адрес строки. Поэтому, когда мы напрямую копируем одну строку в другую. Он будет только пытаться скопировать базовый адрес одной строки в другую строку, что приведет к ошибке.
С другой стороны, используя символьный указатель, мы храним только базовый адрес строки, который можно легко скопировать в другой символьный указатель.
Пояснение:
Когда мы храним строку обычным способом, мы не можем инициализировать ее несколько раз. С другой стороны, мы можем снова инициализировать массив, когда сохраняем его в символьном указателе.
2D массив персонажей
В предыдущих уроках я уже рассказывал вам о двухмерных массивах . 2D массивы персонажей также похожи на них. Поэтому рассмотрите следующую программу, чтобы понять, как она работает.
Выход
Программа самоочевидна. Я использовал только двумерные массивы символов и инициализировал его с некоторыми именами. Чтобы напечатать эти имена на экране, я использовал один для цикла. В функции printf () я только что увеличил строку индекса, чтобы получить доступ ко всем именам.
Комментариев нет:
Отправить комментарий