C vs. C++: Skillnader och likheter

C är grunden för C++. Medan C++ används mer allmänt för stationära appar och spel, är det ett utmärkt alternativ att börja med C, särskilt om du är ny i mjukvaruvärlden. Läs vidare för att veta varför.

Vad är C?

C är ett strukturellt programmeringsspråk på hög nivå. Program skrivna i C är portabla. C är fortfarande ett av de bästa programmeringsspråken idag eftersom det är robust. Det används för komplexa program som inbäddade system, drivrutiner, kärnor, systemapplikationer, operativsystem som Microsoft Windows, Apple OS X, databaser som MySQL och vissa IoT-applikationer.

C är ett kompilerat språk, vilket ger ett lager av abstraktion mellan maskinkoden och programmet.

Ett enkelt C-program för att lägga till två tal kommer att se ut så här.

#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;
}

Här är utgången:

Utdata från exempel C-programmet

C-program inkluderar stdio.h – standardingångsutgången.

STDIO tillhandahåller grundläggande input-output-funktioner som printf och scanf. printf används för att skriva ut något (meddelande, utdata) på konsolen, medan scanf används för att ta indata från konsolen. Vi använder %d för att indikera att talen är heltal.

Om du anger decimaler får du några konstiga svar. För att undvika detta kan du använda %f. Main()-funktionen är den första funktionen som körs när programmet körs. Syntaxen är väldigt enkel – deklarera variabeltyperna och använd dem sedan.

Vad är C++?

C++ är baserat på objektorienterade programmeringsprinciper som abstraktion, polymorfism, arv och inkapsling. Du kan tänka på C++ som en förlängning av C med begreppet klasser och objekt.

Att ha objekt för att lagra data gav en snygg struktur åt programmen. Om du till exempel vill lagra information om en elev kan du skapa en elevklass och skapa attribut som namn, ålder, hobbyer, märken etc. under klassen. Du kan skapa ett riktigt studentobjekt när det behövs!

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

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

I verkligheten kommer objektet att skapas och minne tilldelas endast under körning.

C++ ger hög prestanda, vilket är anledningen till att det är det mest populära valet även idag för att utveckla högpresterande spelmotorer, inbyggda system, webbläsare, kompilatorer och grafikbaserade applikationer som bildbehandling.

Få databaser som MongoDB är skrivna i C++. Precis som C är C++ bärbar.

Låt oss skriva vårt tidigare tilläggsprogram i C++ – lägg märke till de olika funktionerna.

#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;
}

Observera att vi använder cout och cin istället för printf och scanf. Typdeklarationer kan också göras var som helst i programmet innan variabeln används (till exempel variabelsumman). Utskriften är ganska enkel med bara variabelnamnen. Observera att vi använder namnutrymmet std från iostream-huvudet. std har metoder som cout, in och många fler.

Likheter mellan C och C++

Man kan säga att C är en delmängd av C++. Det finns många likheter mellan C och C++, vare sig det är i hur program skrivs eller vilka applikationer de används för. Båda är robusta, bärbara och högpresterande. Några viktiga likheter är:

Sno.FeatureExplanation1.SyntaxBåda har samma syntax, till exempel variabeldeklaration, semikolon i slutet av rad, namnkonventioner, etc.2.Strukturell och procedurVarje kodrad exekveras en efter en. Programmen är strukturerade enligt följande – först importerna, sedan variabla deklarationer och sedan huvudkoden.3.Main() functionAll kod som behöver köras ska finnas i main()-funktionen. main() är det första funktionsanropet under programkörning.4.PointersBåde C och C++ använder pekare på samma sätt. En pekare är en variabel som lagrar minnesadressen för en annan variabel. Till exempel, int a = 1;. Så snart denna kod exekveras kommer ett minne (säg XX0011) att tilldelas för a. Minnesplatsen för ’a’ kan nås genom att använda et-tecken (&) som int ptr_a = &a;5.Sökord och operatorerAlla nyckelord och operatorer som finns i C är också giltiga för C++. Till exempel scope, static, public, int, etc. C++ har också ytterligare operatorer och nyckelord. Likheter mellan C och C++

Skillnader mellan C och C++

C++ skapades för att övervinna några av bristerna i C och är en superuppsättning av C. Så alla program som skrivits i C kommer att fungera i C++ – men inte vice versa! Den största skillnaden mellan C och C++ är att C++ är baserad på objektorienterade principer (OOP) för programmering. Det är också mer betoning på typkontroll i C++. Det finns också några mer subtila skillnader som listas nedan:

CC++ Utvecklades mellan 1969-1973 av Dennis Ritchie vid AT&T Bell labs Utvecklad av Bjarne Stroustrup 1979. Följer inte objektorienterade programmeringsprinciper Baserat på OOPS-koncepten, som inkapsling, polymorfism och arv. C innehåller totalt 32 nyckelord som 32 tecken. , switch, int, static, union och andra.Alla C-nyckelord är giltiga i C++, och 31 ytterligare nyckelord finns också. Stöder endast procedurprogrammeringC++ stöder flera programmeringsparadigm, som OOP, generisk och funktionell programmering.Vi kan inte implementera funktioner i OOP i C .Funktioner som vänner, virtuella funktioner i C++ förstärker kärnan i OOP.C stöder inbyggda datatyper.C++ stöder både inbyggda och användardefinierade datatyper genom konceptet klasser.Det finns möjlighet för operatörs- eller funktionsöverbelastning C++ stöder båda operatörerna och funktionsöverbelastning (polymorfism) Minnestilldelning görs genom malloc() och calloc() funktioner, och avallokering med gratis()Minnesallokering happ ens använder ny operatör, och avallokering med delete operatorC stöder inte undantagshantering Stöder undantagshantering Fokuserar på proceduren eller metoden mer än dataMer fokuserad på dataSkillnader mellan C och C++

Några andra viktiga funktioner som bara finns i C++ är:

  • Med hjälp av nyckelord för namnutrymme kan vi skapa variabler med samma namn i olika namnutrymmen.
  • Vi kan använda funktioner inuti en struktur. Strukturer kan också ha åtkomstmodifierare.
  • Stöder referensvariabler.

När ska man använda C eller C++

Detta är en mycket vanlig debatt bland programmerare – varför ska jag lära mig C när jag kan göra allt i C++?

Att lära sig C kommer att ge dig en solid grund för datastrukturer, pekare, nyckelord, begrepp för stack, heap och minnesallokering.

Förutom det används C fortfarande i stor utsträckning för högpresterande appar, eftersom C-kompilatorn är snabbare än C++-kompilatorn. Så om du vill skriva bitar av kod som inte kräver objekt och klasser, virtuella funktioner eller mallar, välj C eftersom C++ kan vara överdrivet med dess omfattande bibliotek.

De flesta lågnivåkodningar som kärnor, operativsystem och databaser underhålls fortfarande i C, så att känna till C kommer också att hjälpa dig att lära dig C++ snabbare.

C++ anses vara ett av de snabbaste och mest effektiva språken – det är därför det fortfarande är ett av de bästa programmeringsspråken, särskilt för högpresterande applikationer som spelmotorer, IoT-enheter och stationära appar. Många applikationer använder en kombination av C- och C++-kod – för att uppnå optimal prestanda och fördelen med objektorienterad programmering.

Sammanfattning

I den här artikeln lärde vi oss grunderna i C och C++ med ett enkelt exempelprogram. Vi diskuterade de huvudsakliga skillnaderna och likheterna mellan de båda språken och när var och en ska användas.

Om du precis har börjat din mjukvaruutvecklingsresa kommer att börja med C ge dig en självförtroendeboost, eftersom det är enkelt och täcker alla programmeringskoncept, som datastrukturer, pekare, minne och så vidare.

Du kanske är intresserad av att använda adminvista.com online C-kompilator och C++-kompilator.