Перейти к содержанию

Программирование Как Оно Есть


call_eax

Рекомендуемые сообщения

Может, наплюнуть на плюсы и сразу заняться Шарпом? Сейчас более востребован. Или Явой. И то, и другое вполне может в консольные приложения, а Ява при должной внимательности еще и мультиплатформенна.

Ссылка на комментарий
Поделиться на другие сайты

Может, наплюнуть на плюсы и сразу заняться Шарпом? Сейчас более востребован. Или Явой. И то, и другое вполне может в консольные приложения, а Ява при должной внимательности еще и мультиплатформенна.

Я под институтскую программу подстраиваюсь, к сожалению. Потому что когда начнутся сишки, мне надо будет уже не только самому на них писать, но и товарищей обучать.

Касательно шарпа кстати аналогичный вопрос.

Ссылка на комментарий
Поделиться на другие сайты

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

На мой взгляд, лучше начинать с C++, чем с C.

 

Проблем не должно быть. Единственное, надо помнить, что C и C++ это два разных языка с достаточно разными принципами. Но вообще они крайне похожи, так что если ты можешь в C++, то ты можешь и в C.

 

 

 

Т.е., если просо не использовать функционал, специфичный для С++, будут ли какие-нибудь существенные отличия от С?

Нет, не будет.

 

 

 

Может, наплюнуть на плюсы и сразу заняться Шарпом? Сейчас более востребован. Или Явой. И то, и другое вполне может в консольные приложения, а Ява при должной внимательности еще и мультиплатформенна.

Для первых языков, на мой взгляд, востребованность это плохой параметр. Востребованность меняется и, в любом случае, новые языки учить придется. Главное - это понять основные принципы и иметь желание учиться, а конкретный язык уже дело десятое.

 

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

 

У тех же, кто, наоборот, поднимается с C или C++ таких проблем нет. Одним словом, это хороший фундамент. Востребованность - да, C#, конечно, более востребованн, но на него не сложно перейти после C и C++.

Ссылка на комментарий
Поделиться на другие сайты

На мой взгляд, как С++ программиста, с С++ не стоит начинать. Если хочется поковыряться на относительно низком уровне то есть более простой Си, если хочется чтото с ООП то лучше начать с Джавы, Шарпа. Современный Си++ это умные указатели, немного ООП и вездесущие шаблоны, новичку с этим работать будет нелегко. Можно конечно прогать в стиле старых стандартов, но это будет потерянное время. Вообще лучше язык выбирать исходя из сферы которой хочешь заняться

Ссылка на комментарий
Поделиться на другие сайты

  • 6 months later...
Вообще лучше язык выбирать исходя из сферы которой хочешь заняться

Обычно в учебных заведениях обучение ЯП идёт параллельно с изучением железа, поэтому частенько выбор именно С++ оправдан. 

 

Как по мне, так С++ один из самых мощных по потенциальным возможностям языков. В С++1y ещё и рефлексию обещают из коробки.

 

мимо-java-groovy-кун

Ссылка на комментарий
Поделиться на другие сайты

  • 4 months later...

А мы продолжаем флешмоб "тупые вопросы по компьютерам". На сей раз вопрос по основам использования указателей в С++.

 

Допустим, в хедере прописана функция:

void ololo( double *a )

В сорсе она прописана так:

void ololo( double *a )
{
      float b = 1;
     *a = b;
     return;
}

В мейне она вызывается так

double *a1 = new double;
ololo(a1);
std::cout << *a1;

Что нам надо изменить во всей этой байде, чтобы на экран в итоге выводилась (а главное - записывалась в а1) искомая единичка? Как я понимаю, где-то надо заменить * на &, но где именно?

Изменено пользователем Хоуленд Рид
Ссылка на комментарий
Поделиться на другие сайты

Ну это-то да. Но он что так, что этак фигню какую-то выдает (только в первом случае адрес, а во втором - число). Код в первом посте поправил.

Ссылка на комментарий
Поделиться на другие сайты

void ololo(double * a);
void ololo(double * a)
{
      float b = 1;
     *a = (double)b;
     return;
}
double * a1 = new double;
ololo(a1);
std::cout << *a1;

Попробуй так. В твоем варианте должно быть выведено значение указателя, то есть адрес, где единица. Для вывода переменной по указателю нужно использовать *.

Изменено пользователем Daniel5555
Ссылка на комментарий
Поделиться на другие сайты

Так, косяк, как водится, в другом месте совсем оказался. Большое спасибо, я бы еще долго мог указателями жонглировать.

Ссылка на комментарий
Поделиться на другие сайты

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...