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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 349
#1

Стоит ли изучить программирование в стиле С? - C++

14.05.2014, 10:00. Просмотров 1141. Ответов 33
Метки нет (Все метки)

Стоит ли изучит программирование в стиле С?
В книге написано про строки в стиле С и настоятельно рекомендуется не использовать их при программирование. Так как я не хочу нагрузит себя не нужной информацией ( ибо за краткий срок много чего надо изучит), возникает вопрос.
На столько актуальны сроки в стиле С? Надо ли изучать их или можно пропустит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2014, 10:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Стоит ли изучить программирование в стиле С? (C++):

Как школьнику изучить программирование? - C++
Самостоятельно изучила основы С и С++. Как продолжить изучение, если ты школьник? Идти на дорогостоящие курсы нет денег.

Что стоит изучить, что перейти от консольных приложений к оконным - C++
Здравствуйте, изучал С/С++ по книге Харви Дейтела "Как программировать на С". Посоветуйте, пожалуйста, что стоит изучить, что перейти от...

Какие книги лучше всего изучить чтобы хорошо изучить с++ - C++
Хотелось бы открыть тему, либо если она уже есть подскажите ссылку. Хочу собрать список книг чтобы изучить профессионально с++, если...

Gnu Octave написана на C++, хочу изучить программирование для Octave, с чего начать - C++
GNU Octave — свободная система для математических вычислений, использующая совместимый с MATLAB язык высокого уровня. Написан на Си++. ...

Стоит ли читать "Программирование. Принципы и практика использования C++" от Страуструпа - C++
Доброго времени суток. Сейчас лето, сессия позади, но не хочется проводить время впустую, а заняться более активным изучением C++. На...

Низкоуровневость в c++. Стоит или не стоит его учить? - C++
Приветствую! Захотел выучить язык c++, но знакомый сказал, что у него есть стремление к низкоуровневости! Подскажите пожалуйста, можно...

33
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 173
16.05.2014, 14:39 #16
О том и речь, что без библиотеки это всего лишь последовательность char, если вам всего лишь экзамен сдать и в нём не будет вопросов по этому, то можно и не учить потеряете только возможность читать чужой код использующий их. String имеет все подобные функции, что были просто для последовательности char. Отсутствие длины плохо сказывается на некоторых алгоритмах, особенно, если использовать в цикле функции из Си библиотеки, которые постоянно заново мерят строку (если это надо в их реализации), а единственный способ избавится от этого написать свою функцию работающую с массивом char. Так же вас не будет волновать вопрос, что прибавив к строке новую нужно заботится, а хватит ли места в памяти (подобные ошибки делали даже в книгах забывая прибавить 1 к malloc), потому что вектор сам все сделает за вас.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 349
16.05.2014, 14:45  [ТС] #17
Цитата Сообщение от Tulosba Посмотреть сообщение
Вы сами ее и превращаете в таковую, раздувая из мухи слона.
Нуу я что та не вижу тут мухи. я задал простой вопрос получил объяснение и споры.

Tulosba, можно узнать зачем если есть более простые способы написать тот же код?

А я хотел не мучат себя с ними, этот стил ужасно сложный для меня.

Добавлено через 4 минуты
Archi0, мне не надо сдавать эгзамен я хочу научится программированию. Чтоб читать код не надо умет писать программу на этом языке или в стиле того программиста. Я к тому что пригодится ли мне этот стил.
0
monolit
188 / 187 / 22
Регистрация: 24.03.2011
Сообщений: 670
Завершенные тесты: 1
16.05.2014, 14:53 #18
Цитата Сообщение от Altair42 Посмотреть сообщение
Мне только надо знать. На сколько актуальны сегодня строки в стиле С.
Для некоторых случаев удобно использовать string, для некоторых - char*. Все зависит от специфики задачи. Да и как уже сказали - нечего там учить. За то время, пока существует эта тема, запомнить
все что нужно можно было 10 раз.
Цитата Сообщение от Altair42 Посмотреть сообщение
И сколько же таких "наборов букв" в библиотеке cstring
Ну, названия функциям даны не просто так (вы это уже заметили). Естественно, на первых порах может и не запоминаться - все познается на практике. И только. Напишешь несколько десятков раз код с использованием того же strcpy, и запомнишь, для чего он нужен, как пишется и какие принимает параметры. Да и гугл все таки есть, найти название нужной функции несложно, если она существует... Все это при условии, что это не просто ради зачета, а действительно хочется чему-либо научится.

Цитата Сообщение от Altair42 Посмотреть сообщение
А я хотел не мучат себя с ними, этот стил ужасно сложный
Тогда стоит задуматься, а нужно ли пытаться программировать, если это сложно и неинтересно?) Потому что дальше будет только сложнее)
0
Archi0
28 / 14 / 4
Регистрация: 18.07.2013
Сообщений: 173
16.05.2014, 14:57 #19
Чтобы не сидеть часами думая где ошибка в Си надо понимать к чему приводят ошибки в памяти и как с этой памятью работать char как один байт в этом может пригодится для более простого программирования можно посмотреть в сторону C#. Я плюсы использую только там где надо добиться экстремальной скорости п этому использую его чаще как Си с небольшими улучшениями. Ниже пример как программа может интерпретировать память при выходе за границы массива.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*class ClassOne
{ int x;
public:
 int func()
 {return x;}
};*/
int main()
{
 std::cout<<sizeof(ClassOne)<<"\n";
 int f=8;
 void* p = &f;
 std::cout<<((ClassOne*)p)->func();
 system("pause");
}
/*class ClassOne
{
 int x;
public:
 virtual int func()
 {return x;}
};*/
int main()
{
 std::cout<<sizeof(ClassOne)<<"\n";
 ClassOne b;
 void* t = &b;
 std::cout<<*(((int*)t+1))<<"\n";
 int f[]={*(int*)t,8};
 void* p = &f;
 std::cout<<((ClassOne*)p)->func();
 system("pause");
}
Функции могут быть вызваны на тех объектах где их и не существовало
0
Tulosba
:)
Эксперт С++
4619 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.05.2014, 14:57 #20
Цитата Сообщение от Altair42 Посмотреть сообщение
не вижу тут мухи
Несмотря на название темы, основном момент Вы уделили почему-то именно строкам. А это как раз "муха".
Если Вы собрались писать на C++, рано или поздно всё равно придется залезать в более низкоуровневые части. Поэтому Си тут будет хорошим подспорьем, а так же ассемблер, знание архитектуры компа и прочее. Я не говорю, что обязательно надо знать это всё на зубок, но ознакомиться точно не помешает.
0
SatanaXIII
Супер-модератор
Эксперт С++
5666 / 2711 / 255
Регистрация: 01.11.2011
Сообщений: 6,639
Завершенные тесты: 1
16.05.2014, 15:04 #21
Altair42, вы задаете провокационные вопросы. Невозможно на подобные ответить четко и аргументированно. Все наиболее близкие к этому ответы на первой странице темы. Можете перечитать. Стандарт не регламентирует стоит ли изучать другой язык. Дальше понесутся домыслы, мнения, уходы в другую степь. Осознайте это.

 Комментарий модератора 
Если тема в подобном духе перевалит еще пару страниц, отправится в спецраздел.
1
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 349
16.05.2014, 15:31  [ТС] #22
monolit, сложно не программирование. Мне нравится то что я изучаю. Мне это интересно. Сложно только то, что надо будет запомнит все эти наборы букв. Вот функцию strcpy() уже не сложно вспомнит при необходимости ибо знаю что это смесь двух слови что они означают. Но запомнит именно набор букв s t r c p y было не возможно сложно. Я забывал его пока переключался с книги на сайт ( книга электронная в фомате джв нельзя копировать).

Добавлено через 5 минут
SatanaXIII, спасибо что пояснили.
Мне как новичку нужен был совет специалистов. А тут некоторые забыли что тема в разделе для новичков и создавший тему полный ноль.

Прмер.
А что там изучать ? Вот строка из символов, вот завершающий ноль в конце.
Если вы принимаете строку в N символов, то должны выделить N+1 места в
буфере, чтобы не было переполнения. Если память под буфер выделяется в
динамической памяти, за ней нужно следить и освобождать, когда она
больше не нужна. Вот и вся наука.
Каждый воспринимает мир по своему. Такие вот ответы путают.
0
0x10
2526 / 1706 / 257
Регистрация: 24.11.2012
Сообщений: 4,269
16.05.2014, 15:32 #23
Цитата Сообщение от Altair42 Посмотреть сообщение
Но запомнит именно набор букв s t r c p y было не возможно сложно
Это и есть - из мухи слона. В запоминании сокращения string copy проблем нет, да и знать наизусть точные имена функций нет необходимости.
Капитаню я, конечно... Просто "учить язык" и "страдать фигней" - это несколько разные вещи. Пока наблюдаю второе.
1
Tulosba
:)
Эксперт С++
4619 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.05.2014, 15:48 #24
Цитата Сообщение от Altair42 Посмотреть сообщение
s t r c p y
string copy. На самом деле в таких сокращениях есть своя логика. Поэтому даже если их придется запоминать, сделать это не так уж и сложно как кажется.
0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 349
16.05.2014, 15:54  [ТС] #25
0x10, при изучение чего то надо посоветоваться с кем то кто уже знает этого. Тупа читать книгу и стараться запоминая каждое слово не понимая что и почему это не изучение. Это просто чтение и запоминание. Которое не к чему не приводит. ( Может у кого то так получается но не у меня. Я должен понят почему 2 * 2 = 4. К примеру)

Добавлено через 2 минуты
Tulosba, запомнит сокращение не сложно если знать из каких слов сокращено. Ибо зная слова из которых сокращено я сам смогу сократит те слова и получит нужное которого не могу просто запомнит. Надо будет выяснит из чего сделано каждое сокращение. А то я не смогу запомнит сколько бы их не писал и читал
0
RamonN
32 / 32 / 11
Регистрация: 13.07.2011
Сообщений: 138
16.05.2014, 15:58 #26
Altair42, Для этого и нужна практика, чтобы не "тупа читать и запоминать", а чтобы знания закреплялись практикой, простите за тавтологию.
0
Tulosba
:)
Эксперт С++
4619 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
16.05.2014, 16:08 #27
Цитата Сообщение от Altair42 Посмотреть сообщение
Надо будет выяснит из чего сделано каждое сокращение.
Сокращение сделано из слов, которые описывают функцию. Вы же должны знать какие действия хотите сделать прежде чем написать имя функции, а не наоборот. Нужно строку скопировать - значит string copy с последующим сокращением букв. Переместить память - memory move (memmove) ... и т.д.

Не по теме:

Короче, учите английский. И русский, судя по всему, тоже учите

0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 349
16.05.2014, 16:24  [ТС] #28
Tulosba, нуу русский самый сложный язык который существует. Не могу обещать что справлюсь с ним
А насчет англиского, пока хватает.
Я уже как бы казал что зная какие слова использованы в сокращение проше его запомнит. До получение ответов в этой теме я не хотел тратит времени на то чего не рекомендуют использовать в программирование. Ибо времени мало (день уже распределен я на форуме только в свободное время.)
0
Tulosba
16.05.2014, 16:42
  #29

Не по теме:

Цитата Сообщение от Altair42 Посмотреть сообщение
Ибо времени мало (день уже распределен я на форуме только в свободное время.)
Не надо думать, что Вы один такой

0
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 349
16.05.2014, 16:45  [ТС] #30
RamonN, вот и пишу не нужные коды чтоб практиковаться Имеется введу эта тема...
Массив и вектор

Добавлено через 2 минуты
Tulosba, Не многие упрекали что за то время которое провожу на форуме мог бы что та почитать. Но обсуждение с теми кто в курсе лучшее обучение. С форума я узнал много, чего не смог бы прочесть с книги.
0
16.05.2014, 16:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 16:45
Привет! Вот еще темы с ответами:

Хочу изучить C++ - C++
Начал читать книгу С++ на начинающих можно сказать чайников. Не могу скомпилировать. Хотел бы найти знающего человека ля помощи и...

решил изучить с++ - C++
всем привет, решил начать изучать с++, скачал MSVC++ 2010 express, какую литературу вы посоветуете для изучения данного языка?

2 изучить работу с массивом - C++
Нам задали две лабораторные по С++ , с которыми у меня возникли трудности Вторая состоит из двух частей(задание прилоено ниже в лаб...

Cтоит ли после изучения Си++ изучить Си - C++
Подскажите, стоит ли после изучения Си++ изучить Си? Ведь в Си++ поддерживаются все сишные команды (например, alloc, realloc и т.д.) Но в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru