Я должен изучить C прежде, чем изучить C++? [закрытый]

PR только что слился с MASTER

127.0.0.1:6379> GRAPH.QUERY G "create (:Entity {id:'foo'}), (:Entity {id:'bar'})"
1) (empty list or set)
2) 1) "Labels added: 1"
   2) "Nodes created: 2"
   3) "Properties set: 2"
   4) "Query internal execution time: 0.536000 milliseconds"

127.0.0.1:6379> GRAPH.QUERY G "MATCH (n1:Entity {id:'foo'}), (n2:Entity {id:'bar'}) CREATE (n1)-[r:areFriends]->(n2) RETURN n1,n2,TYPE(r)"
1) 1) 1) "n1.id"
      2) "n2.id"
      3) "TYPE(r)"
   2) 1) "foo"
      2) "bar"
      3) "areFriends"
2) 1) "Relationships created: 1"
   2) "Query internal execution time: 0.409000 milliseconds"

Обратите внимание: это изменение будет частью версии 1.0.12

Redislabs / Redisgraph изображения докера: край

113
задан Sophie Alpert 23 June 2010 в 06:09
поделиться

14 ответов

Нет никакой потребности изучить C прежде, чем изучить C++.

Они - различные языки . Это - распространенное заблуждение, что C++ в некотором роде зависит от C и не полностью указанного языка самостоятельно.

Просто, потому что C++ доля много того же синтаксиса и много той же семантики, не означает, что необходимо изучить C сначала.

, Если Вы изучаете C++, Вы в конечном счете изучите большинство C с некоторыми различиями между языками, которые Вы будете учить со временем. На самом деле это - очень твердая вещь записать надлежащий C++, потому что промежуточные программисты на C++ склонны писать C/C++. Это верно, запустили ли Вы с C или запустились с C++.

, Если Вы знаете C сначала, тогда это хорошо плюс к изучению C++. Вы запустите со знания блока языка. Если Вы не знаете C сначала тогда нет никакого смысла фокусирующегося на другом языке. Существует много хороших книг и учебных руководств, доступных, которые запускают Вас со знания ничего и покроют что-либо, что Вы узнали бы из C, который относится к C++ также.

посмотрите дальнейшее обоснование в этом ответе .

115
ответ дан Community 24 November 2019 в 02:37
поделиться

Некоторые книги C++ предполагают, что у читателя есть минимальное знание о C, но кто бы ни язык Вы выбором не является неправильный путь, потому что много языков программирования неравнодушно на основе C/C++ и для будущего, узнавая, что другие языки будут немного легче.

0
ответ дан night_crawler 24 November 2019 в 02:37
поделиться

Наблюдая людей, которые изучили Java сначала, борьбу с понятием указателей и управления памятью в C++, я сказал бы, что изучение C сначала является хорошей идеей, для схватывания этих двух понятий, изолированных от сложностей других функций C++.

6
ответ дан TrayMan 24 November 2019 в 02:37
поделиться

Как ответы на многие другие вопросы в жизни, это зависит. Это зависит от того, каковы Ваши интересы программирования и цели. Если Вы хотите программировать настольные приложения, возможно, с GUI, то C++ (и ООП) является, вероятно, лучшим способом пойти. Если Вы интересуетесь аппаратным программированием на чем-то другом, чем x86 чипсет, то C часто является лучшим выбором, обычно для его скорости. Если бы Вы хотите создать новый медиаплеер или записать бизнес-приложение, я выбрал бы C ++. Если Вы хотите сделать научные моделирования коллизий галактики или гидроаэродинамики, созерцайте питание C.

7
ответ дан Scottie T 24 November 2019 в 02:37
поделиться

Нет.

обычно более полезно изучить C++, потому что это ближе к самым современным основанным на OO языкам, как Eiffel или C#.

, Если Ваша цель состоит в том, чтобы изучить C++, изучите современный, стандартный C++ во-первых. Оставьте в стороне mallocs.

<час>

, Но у Steve Rowe есть точка ...

8
ответ дан Daniel Daranas 24 November 2019 в 02:37
поделиться

Изучение C вынуждает Вас думать тяжелее о некоторых проблемах, таких как явное и неявное управление памятью или размеры ресурса хранения типов основных данных в то время, когда Вы пишете свой код.

, Как только Вы достигли точки, где Вы чувствуете себя комфортно в отношении функций C и ошибки , Вы, вероятно, испытаете меньше затруднений при изучении и записи в C++.

совершенно возможно, что код C++, который Вы видели, не выглядел очень отличающимся от стандарта C, но это может быть то, потому что это не было объектно-ориентировано и не использовало исключения, объектную ориентацию, шаблоны или другие расширенные функции.

8
ответ дан hillu 24 November 2019 в 02:37
поделиться

В процессе изучения C++ Вы изучите большинство C также. Но имейте в виду, что много кода C++ не является допустимым C. C++ был разработан, чтобы быть совместимым с кодом C, таким образом, как я скажу, изучат C++ сначала. Brian записал большой ответ относительно этого.

10
ответ дан Community 24 November 2019 в 02:37
поделиться

Я собираюсь не согласиться с большинством здесь. Я думаю, что Вы должны изучать C прежде, чем изучить C++. Это определенно не необходимо, но я думаю, что это делает изучение C++ намного легче. C в основе C++. Что-либо, что Вы узнаете о C, применимо к C++, но C намного меньше и легче учиться.

Погрузка K& R и прочитанный это. Это коротко и даст Вам достаточный смысл языка. Как только у Вас есть основы указателей и вызовов функции вниз, можно идти дальше к немного легче C++.

12
ответ дан Steve Rowe 24 November 2019 в 02:37
поделиться

Я думаю, что необходимо изучить C сначала, потому что я изучил C сначала. C дал мне хорошее схватывание синтаксиса и глюков с вещами как указатели, все из которых текут в C++.

я думаю, что C++ помогает обернуть все те глюки (нуждайтесь в массиве, который не переполнится, когда Вы будете использовать [] оператор и изворотливый индекс? Несомненно, сделайте класс массива, который делает проверку границ), но необходимо знать то, что они и укушены ими перед пониманием, почему вещи сделаны определенными способами.

, Когда все сказано и сделано, путь, C++ обычно преподается, "C++, C с объектами, здесь материал C и здесь, как весь этот материал OO работает", таким образом, Вы, вероятно, изучите основной C перед любым реальным C++, если Вы будете следовать большинству текстов так или иначе.

12
ответ дан Adam Hawes 24 November 2019 в 02:37
поделиться

C - необходимость, знают язык для разработки программного обеспечения. C++, Java, Python, не. Необходимо изучить это сначала без сомнения.

12
ответ дан old_timer 24 November 2019 в 02:37
поделиться

Если Вы решаете учиться и (и как другие люди упомянули, нет никакой явной потребности изучить обоих), изучите C сначала. Движение от C до C++ чувствует себя подобно естественной прогрессии; хождение другим путем испытывает желание сознательно связывать одну руку за Вашей спиной.:-)

13
ответ дан Head Geek 24 November 2019 в 02:37
поделиться

Я люблю этот вопрос - он похож на выяснение, "что я должен изучить сначала, катаясь на сноуборде или катаясь на лыжах"? Я думаю, что это зависит, если Вы хотите кататься на сноуборде или покататься на лыжах. Если Вы хотите сделать обоих, необходимо изучить обоих.

В обоих спортивных состязаниях, Вы скатываетесь с выступа на снегу с помощью устройств, которые достаточно аналогичны для вызова этого вопроса. Однако они также достаточно отличаются так, чтобы изучение того не помогало Вам очень с другим. То же самое с C и C++. В то время как они, кажется, языки, достаточно подобные в синтаксисе, набор ума, в котором Вы нуждаетесь для написания кода OO по сравнению с процессуальным кодексом, достаточно отличается так, чтобы Вы в значительной степени запустили с начала, безотносительно языка, который Вы учите второй.

72
ответ дан cdonner 24 November 2019 в 02:37
поделиться

Я считаю, что сначала изучить C - это хорошая идея.

Есть причина, по которой в компьютерных науках все еще используется C.

На мой взгляд, это делается для того, чтобы избежать «скопления» этого предмета. имеет значение обязательство требовать ООП.

Я думаю, что процедурное программирование - наиболее естественный способ сначала изучить программирование. Я думаю, что это правда, потому что в конце дня это то, что у вас есть: строки кода, выполняющиеся одна за другой.

Многие тексты сегодня продвигают подход «сначала объекты» и начинают говорить об автомобилях и переключениях передач, прежде чем они вводят массивы .

6
ответ дан 24 November 2019 в 02:37
поделиться

Сначала я изучил C, и я прошел курс по структурам данных, которые используют C, прежде чем я изучил C ++. У меня это хорошо сработало. Курс по структурам данных на C дал мне твердое представление об указателях и управлении памятью. Это также сделало очевидными преимущества объектно-ориентированной парадигмы, как только я узнал, что это такое.

С другой стороны, сначала изучив C, я выработал некоторые привычки, которые изначально заставляли меня писать плохой код на C ++, такие как чрезмерное использование указателей (когда подойдут ссылки на C ++) и препроцессора.

C ++ - это действительно очень сложный язык с множеством функций. Однако на самом деле это не надмножество C. Скорее, существует подмножество C ++, состоящее из основных процедурных программных конструкций (циклов, ifs и функций), что очень похоже на C. В вашем случае я бы начал с этого, а затем перехожу к более продвинутым концепциям, таким как классы и шаблоны.

ИМХО, самое важное - это подвергаться воздействию различных парадигм программирования, таких как процедурное, объектно-ориентированное, функциональное и логическое, на ранней стадии, до того, как ваш мозг застревает в одном взгляде на мир. Кстати, я также настоятельно рекомендую вам изучить функциональный язык программирования, например Scheme. Это действительно расширит ваш кругозор.

63
ответ дан 24 November 2019 в 02:37
поделиться