Huvudskillnad: C och C ++ är två olika datorprogrammeringsspråk. C ++ utvecklades från C programmeringsspråket; men de är helt annorlunda i naturen. Den mest uppenbara skillnaden är att C är ett procedurorienterat språk, medan C ++ stöder både procedur- och objektorienterad programmering, därför kallas det ofta ett hybrid språk.

C är ett av de äldsta för närvarande använda programmeringsspråken och är ett av de mest använda programmeringsspråken. Den har ständigt använts i applikationer som tidigare kodats i monteringsspråk. Detta inkluderar UNIX-operativsystemet. C har också direkt eller indirekt påverkat många av de senare programmeringsspråken, som C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python och Unix C-skal. Trots alla dessa nya språk är C fortfarande ett populärt programmeringsspråk.
C ++ startade ursprungligen som en förbättring till C. Den var avsedd att vara källa-och-länk kompatibel med C. Men den tillade klasser, virtuella funktioner, överbelastning av operatörer, flera arv, mallar, undantagshantering etc. Till sist utvecklades det tillräckligt för att betraktas som ett programmeringsspråk i sig. Det ratificerades ursprungligen 1998 som ISO / IEC 14882: 1998 certifierat programmeringsspråk. Idag används C ++ nu vanligtvis för hårdvaru design.
C är ett allmänt programmerat språkspråk som använder semikolon (;) som uttalandeterminator, såväl som krullningsstöd ({}) för gruppering av block av uttalanden. Den har faciliteter för strukturerad programmering och dess design ger konstruktioner som kan kartlägga effektivt på typiska maskininstruktioner. Det möjliggör också lexiskt variabelt räckvidd och rekursion och har ett statiskt typsystem som förhindrar många oavsiktliga operationer.
Men i jämförelse med C ++ har C många begränsningar. Eftersom C inte är objektorienterad, stöder den inte OOPS-koncept. C stöder inte funktion och överbelastning av operatören. Det kan inte använda funktioner inom strukturerna. Den stöder inte virtuella funktioner och referensvariabler eller undantagshantering. Den stöder inte heller referensvariabler. Dessutom inkapslar C inte inkapsling eller datasäkerhet. I jämförelse stöder C ++ alla dessa funktioner.

De två språken skiljer sig också på det sätt som adressminnet fungerar, ingång och utgång och GUI-programmering. Till exempel använder C funktionerna calloc (), malloc () och free () för att allokera och avdela minne medan C ++ använder nytt och raderar. C använder scanf () och printf () för inmatning och utmatning, medan C ++ använder cin >> och cout << -operatörer. C stöder GTK-verktyg för GUI-programmering, medan C ++ stöder Qt-verktyg för GUI-programmering. En annan skillnad är att C kräver en att deklarera alla variabler längst upp i programmet, medan i C ++ kan variablerna deklareras var som helst i programmet.
Dessutom anses C ++ oftast vara lättare att lära sig, eftersom det är mer användarvänligt än C. C ++ har också många ytterligare funktioner som gör kodningen enklare, speciellt för någon som är ny på C-ramen. Men många hävdar att det faktiskt betyder något. De två språken skiljer sig så mycket, att de faktiskt kan vara två olika språk oberoende av varandra. En sak att komma ihåg är att C är mycket mer strukturerad än C ++, medan C ++ är utformad för att vara mer uttrycksfull och abstrakt än C.
Jämförelse mellan C och C ++:
C | C ++ | |
Grundad | Utvecklad av Dennis Ritchie på AT & T Bell Labs mellan 1969 och 1973. | Utvecklad av Bjarne Stroustrup vid Bell Labs från 1979. |
Källkod | Kodkod för friformatprogramkod | Ursprungligen utvecklad från C-programmeringsspråket |
Språk | Förfarande Orienterat språk | Stöder både procedur- och objektorienterade programmeringsparadigmer; därför kallas det ofta ett hybrid språk. |
Närma sig | Följer topp-down-tillvägagångssätt. | Följer botten upp tillvägagångssätt |
Relation | C är en delmängd av C ++. Det kan inte köra C ++-kod. | C ++ är en superset av C. C ++ kan köra större delen av C-koden medan C inte kan köra C ++-kod. |
Kör | Funktionsdriven språk | Objektdrivet språk |
Fokus | Fokuserar på metod eller process snarare än data. | Fokuserar på data istället för metod eller procedur. |
Byggklossar | funktioner | Objekt |
Nyckelord | Innehåller 32 nyckelord | Innehåller 52 nyckelord |
OOPS Concepts | Som "C" -språket är procedurorienterat språk stöder det inte OOPS-begrepp som klass, objekt, arv, polymorfism, datafelning etc. | Som ett objektorienterat språk stöder C ++ klass, objekt, döljande data, polymorfism, arv, abstraktion etc. |
funktioner |
|
|
Minnesfunktioner | Använder calloc (), malloc () och gratis () funktioner för allokering och avallokering av minne. | Använder operatörer nya och raderar i samma syfte. |
inkapsling | Stödjer inte. Data och funktioner är separata och fria enheter. | Stöder inkapsling. Data och funktioner inkapslas ihop i form av ett objekt. Objekts klass ger en ritning om objektets struktur. |
Information gömmer sig | C stöder inte information som gömmer sig. Här är data gratis enheter och kan manipuleras med extern kod. | Encapsulation döljer data för att säkerställa att datastrukturer och operatörer används som avsedda. |
Data | Stöder inbyggda och primitiva datatyper. Data är inte säkrat på grund av icke-objektorienterad | Stöder både inbyggda och användardefinierade datatyper. Data är säker (dold) i C ++ |
Nivå | Lågnivå språk | Språk på mellannivå |
Input-output | C-språk använder scanf () och printf () för inmatning och utmatning. | C ++-språk använder cin >> och cout << -operatörer för inmatning och utmatning. |
Förklaring av variabler | C kräver en att deklarera alla variabler längst upp i programmet. | I C ++ kan variablerna deklareras var som helst i programmet före användning. |
Multipla deklarationen | Multipla deklarationen av globala variabler är tillåtna. | Multipla deklarationen av globala variabler är inte tillåtna. |
kartläggning | Kartläggning mellan data och funktion är svårt och komplicerat. | Kartläggning mellan data och funktion kan användas med "objekt" |
GUI programmering | C stöder GTK-verktyg för GUI-programmering | C ++ stöder Qt-verktyg för GUI-programmering |
Arv | Erfarenhet är inte möjlig i C | Erfarenhet är möjlig i C ++ |
Filförlängning | Har filtillägg .c | Har filtillägg .cpp |
Standardhuvudfilen | Standardhuvudfilen som används i C-språk är stdio.h | Standardhuvudfilen som används i C ++ är iosteam.h |
Några exempel på skillnad mellan C och C ++:
exempel | C | C ++ |
Variabel deklaration | Bara överst: int jag; för (i = 10; i <10; i ++) | Överallt i programmet: för (inti = 10; i <10; i ++) |
Minnesallokering | malloc: int * x = malloc (sizeof (int)); int * x_array = malloc (sizeof (int) * 10); | Ny: int * x = new int; int * x_array = new int [10]; |
Frigör minne | Fri: fri (x); fri (x_array); | Radera: radera x; ta bort [] x_array; |