C срещу C++: разлики и прилики

C е основата за C++. Докато C++ се използва по-широко за настолни приложения и игри, това е отлична възможност да започнете с C, особено ако сте нов в света на софтуера. Прочетете, за да разберете защо.

Какво е C?

C е език за структурно програмиране от високо ниво. Програмите, написани на C, са преносими. C все още е един от най-добрите езици за програмиране днес, защото е стабилен. Използва се за сложни програми като вградени системи, драйвери, ядра, системни приложения, операционни системи като Microsoft Windows, Apple OS X, бази данни като MySQL и някои IoT приложения.

C е компилиран език, като по този начин осигурява слой на абстракция между машинния код и програмата.

Една проста C програма за събиране на две числа ще изглежда така.

#include<stdio.h>
int main()
{
int a, b, sum;
printf("Enter two numbers to add: ");
scanf("%d%d", &a, &b);
sum = a + b;
printf("nSum of %d and %d is %d", a, b, sum);
return 0;
}

Ето резултата:

Резултат от примерната C програма

C програмите включват stdio.h – стандартния входен изход.

STDIO предоставя основни входно-изходни функции като printf и scanf. printf се използва за отпечатване на нещо (съобщение, изход) на конзолата, докато scanf се използва за приемане на входове от конзолата. Използваме %d, за да посочим, че числата са цели числа.

Ако дадете десетични знаци, ще получите някои странни отговори. За да избегнете това, можете да използвате %f. Функцията main() е първата функция, която се изпълнява, когато програмата се изпълнява. Синтаксисът е много прост – декларирайте типовете променливи и след това ги използвайте.

Какво е C++?

C++ се основава на принципи на обектно-ориентираното програмиране като абстракция, полиморфизъм, наследяване и капсулиране. Можете да мислите за C++ като за разширение на C с концепцията за класове и обекти.

Наличието на обекти за съхраняване на данни даде чиста структура на програмите. Например, ако искате да съхраните подробности за ученик, можете да създадете клас ученик и да създадете атрибути като име, възраст, хобита, оценки и т.н. под класа. Можете да създадете истински ученически обект, когато е необходимо!

class Student {
public: 
char name[20];
int age;
float marks;
};

//This will create an object
Student student1 = new Student();

В действителност обектът ще бъде създаден и паметта ще бъде разпределена само по време на изпълнение.

  Плъзнете наляво, надясно или отдолу, за да получите достъп до приложения и контакти Snype

C++ осигурява висока производителност, поради което е най-популярният избор дори днес за разработване на високопроизводителни двигатели за игри, вградени системи, браузъри, компилатори и базирани на графики приложения като обработка на изображения.

Малко бази данни като MongoDB са написани на C++. Точно като C, C++ е преносим.

Нека напишем нашата предишна програма за добавяне на C++ – забележете различните функции.

#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Enter the numbers: "; 
cin >> a >> b;
int sum = a + b;
cout << a << " + " << b << " = " << sum;
return 0;
}

Обърнете внимание, че използваме cout и cin вместо printf и scanf. Освен това декларациите на типове могат да се правят навсякъде в програмата, преди да се използва променливата (например сумата на променливата). Операторът за печат е доста прост само с имената на променливите. Обърнете внимание, че използваме пространството от имена std от заглавката на iostream. std има методи като cout, in и много други.

Прилики между C и C++

Можете да кажете, че C е подмножество на C++. Има много прилики между C и C++, било то в начина, по който се пишат програмите или в приложенията, за които се използват. И двата са здрави, преносими и високопроизводителни. Някои важни прилики са:

Sno.FeatureExplanation1.Syntax И двата имат един и същ синтаксис, например декларация на променлива, точка и запетая в края на реда, конвенции за именуване и т.н. 2. Структурни и процедурни Всеки ред код се изпълнява един по един. Програмите са структурирани по следния начин – първо импортирането, след това декларациите на променливите и след това основния код. 3. Функция Main() Целият код, който трябва да бъде изпълнен, трябва да бъде във функцията main(). main() е първото извикване на функция по време на изпълнение на програмата. 4. Указатели И C, и C++ използват указатели по същия начин. Указателят е променлива, която съхранява адреса на паметта на друга променлива. Например int a = 1;. Веднага след като този код бъде изпълнен, памет (да речем, XX0011) ще бъде разпределена за a. Местоположението на паметта на ‘a’ може да бъде достъпно чрез използване на амперсанд (&) като int ptr_a = &a;5. Ключови думи и оператори Всички ключови думи и оператори, присъстващи в C, са валидни и за C++. Например scope, static, public, int и т.н. C++ също има допълнителни оператори и ключови думи. Прилики между C и C++

  Какво мога да направя със стария си iPhone?

Разлики между C и C++

C++ е създаден, за да преодолее някои от недостатъците на C и е надмножество на C. Така че всяка програма, написана на C, ще работи в C++ – но не и обратното! Основната разлика между C и C++ е, че C++ се основава на обектно-ориентирани принципи (OOP) на програмиране. Освен това има повече акцент върху проверката на типа в C++. Има и няколко по-фини разлики, както са изброени по-долу:

CC++ е разработен между 1969-1973 г. от Dennis Ritchie в AT&T Bell labs. Разработен от Bjarne Stroustrup през 1979 г. Не следва принципите на обектно-ориентираното програмиране. Въз основа на концепциите на OOPS, като капсулиране, полиморфизъм и наследяване C съдържа общо 32 ключови думи като char , switch, int, static, union и други. Всички C ключови думи са валидни в C++ и също присъстват 31 допълнителни ключови думи. Поддържа само процедурно програмиране C++ поддържа множество програмни парадигми, като OOP, общо и функционално програмиране. Не можем да внедрим функции на OOP в C .Функции като приятели, виртуални функции в C++ подобряват същността на OOP.C поддържа вградени типове данни.C++ поддържа както вградени, така и дефинирани от потребителя типове данни чрез концепцията за класове. Има разпоредба за претоварване на оператор или функция. C++ поддържа и двата оператора и претоварване на функциите (полиморфизъм) Разпределението на паметта се извършва чрез функциите malloc() и calloc(), а освобождаването с помощта на free() Разпределението на паметта се случва ens с помощта на нов оператор и освобождаване с помощта на delete operatorC не поддържа обработка на изключения Поддържа обработка на изключения Фокусира се върху процедурата или метода повече от данните По-фокусиран върху данните Разлики между C и C++

  Как да създадете блок-схема в Word

Някои други важни характеристики, налични само в C++, са:

  • Използвайки ключова дума за пространство от имена, можем да създаваме променливи с едно и също име в различни пространства от имена.
  • Можем да използваме функции вътре в структура. Структурите също могат да имат модификатори за достъп.
  • Поддържа референтни променливи.

Кога да използвате C или C++

Това е много често срещан дебат сред програмистите – защо трябва да уча C, когато мога да правя всичко на C++?

Изучаването на C ще ви даде солидна основа върху структури от данни, указатели, ключови думи, концепции за стек, купчина и разпределение на паметта.

Освен това C все още се използва широко за приложения с висока производителност, тъй като C компилаторът е по-бърз от C++ компилатора. Така че, ако искате да пишете парчета код, които не изискват обекти и класове, виртуални функции или шаблони, изберете C, защото C++ може да е пресилен с обширните си библиотеки.

Повечето кодове на ниско ниво като ядра, операционни системи и бази данни все още се поддържат в C, така че познаването на C също ще ви помогне да научите C++ по-бързо.

C++ се счита за един от най-бързите и най-ефективните езици – поради което той все още е един от най-добрите езици за програмиране, особено за приложения с висока производителност като двигатели на игри, IoT устройства и настолни приложения. Много приложения използват комбинация от C и C++ код – за постигане на оптимална производителност и предимството на обектно-ориентираното програмиране.

Резюме

В тази статия научихме основите на C и C++ с проста примерна програма. Обсъдихме основните разлики и прилики между двата езика и кога да използваме всеки от тях.

Ако тепърва започвате своето пътуване в разработката на софтуер, започването с C ще ви повиши увереността, тъй като е лесно и обхваща всички концепции за програмиране, като структури от данни, указатели, памет и т.н.

Може да се интересувате от използването на онлайн C компилатора и C++ компилатора на pctechbg.net.