예제와 함께 C와 C ++의 차이점 | 프로그래밍 언어들

주요 차이점 : C와 C ++는 서로 다른 두 가지 컴퓨터 프로그래밍 언어입니다. C ++은 C 프로그래밍 언어에서 개발되었습니다. 그러나 그들은 사실상 아주 다릅니다. 가장 분명한 차이점은 C는 프로 시저 지향 언어이고 C ++은 프로 시저와 객체 지향 프로그래밍을 모두 지원하므로 하이브리드 언어라고하는 경우가 많습니다.

C와 C ++은 두 가지 다른 컴퓨터 프로그래밍 언어입니다. C는 원래 AT & T Bell Labs의 Dennis Ritchie가 1969 년과 1973 년 사이에 개발했습니다. C ++은 또 하나의 범용 프로그래밍 언어입니다. 이것은 원래의 C 프로그래밍 언어에서 개발되었습니다. Bell Labs의 Bjarne Stroustrup에 의해 1979 년부터 개발되었습니다. C ++는 원래 C를 기반으로 C라는 클래스로 C라는 이름이 붙여졌습니다. 1983 년 C ++로 이름이 바뀌 었습니다.

C는 현재 사용되는 가장 오래된 프로그래밍 언어 중 하나이며 가장 널리 사용되는 프로그래밍 언어 중 하나입니다. 이전에 어셈블리 언어로 코딩 된 응용 프로그램에서 지속적으로 사용되었습니다. 여기에는 UNIX 컴퓨터 운영 체제가 포함됩니다. C는 C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python 및 Unix의 C 쉘과 같은 많은 프로그래밍 언어에도 직접적으로 또는 간접적으로 영향을줍니다. 이러한 새로운 언어에도 불구하고 C는 여전히 인기있는 프로그래밍 언어입니다.

C ++은 원래 C의 기능 향상으로 시작되었습니다. C와 소스 및 링크 호환이 가능하도록 설계되었지만 클래스, 가상 함수, 연산자 오버로딩, 다중 상속, 템플릿, 예외 처리 등을 추가했습니다. 결국, 그 자체로 프로그래밍 언어로 간주되기에 충분합니다. 원래 1998 년 ISO / IEC 14882 : 1998 인증 프로그래밍 언어로 비준되었습니다. 오늘날 C ++은 이제 하드웨어 설계에 일반적으로 사용됩니다.

C는 세미콜론 (;)을 명령문 종료 자로 사용하고 중괄호 ({})를 사용하여 명령문 블록을 그룹화하는 범용 프로그래밍 언어입니다. 그것은 구조화 된 프로그래밍을위한 기능을 가지고 있으며 그 설계는 일반적인 기계 명령어에 효율적으로 매핑 할 수있는 구조를 제공합니다. 또한 어휘 변수 범위와 재귀를 허용하고 많은 의도되지 않은 작업을 방지하는 정적 유형 시스템이 있습니다.

그러나 C ++과 비교할 때 C에는 많은 제한이 있습니다. C는 객체 지향이 아니기 때문에 OOPS 개념을 지원하지 않습니다. C는 함수 및 연산자 오버로딩을 지원하지 않습니다. 구조체 내부에서 함수를 사용할 수 없습니다. 가상 함수 및 참조 변수 또는 예외 처리를 지원하지 않습니다. 또한 참조 변수를 지원하지 않습니다. 또한 C는 캡슐화 또는 데이터 보안을 제공하지 않습니다. 비교해 보면 C ++은 이러한 모든 기능을 지원합니다.

또한 C는 NAMESPACE 기능을 지원하지 않지만 C ++은 지원하지 않습니다. 네임 스페이스는 식별자 (유형, 함수, 변수 등의 이름)를 그룹화 할 수있는 명확한 영역입니다. 네임 스페이스를 사용하여 코드를 논리적 그룹으로 구성하고 이름 충돌을 방지 할 수 있습니다. 이는 특히 코드베이스에 여러 라이브러리가 포함되어있을 때 코드가 충돌하는 경향이있는 경우에 특히 유용합니다.

또한 두 언어는 주소 메모리 기능, 입 / 출력 및 GUI 프로그래밍 방식이 다릅니다. 예를 들어, C는 calloc (), malloc () 및 free () 함수를 사용하여 메모리를 할당 및 할당 해제하고 C ++은 new 및 delete를 사용합니다. C는 입출력을 위해 scanf () 및 printf ()를 사용하고 C ++은 cin >> 및 cout << 연산자를 사용합니다. C는 GUI 프로그래밍을위한 GTK 도구를 지원하지만 C ++은 GUI 프로그래밍을위한 Qt 도구를 지원합니다. 또 다른 차이점은 C는 프로그램 상단의 모든 변수를 선언해야하지만 C ++에서는 변수가 프로그램의 어느 곳에서나 선언 될 수 있다는 것입니다.

또한 C ++은 일반적으로 C보다 사용하기 쉽기 때문에 배울 것이 더 쉬운 것으로 간주됩니다. C ++에는 특히 C 프레임 워크를 처음 접하는 사람에게 코딩을 쉽게 해주는 추가 기능이 많이 있습니다. 그러나 많은 사람들이 그것이 실제로 중요하다고 주장합니다. 두 언어는 너무 많이 다르므로 두 언어가 서로 독립적으로 존재할 수 있습니다. 한 가지 명심해야 할 것은 C는 C ++보다 훨씬 구조화 된 반면 C ++은 C보다 표현력이 풍부하고 추상적으로 설계되었습니다.

C와 C ++의 비교 :

기음

C ++

설립

1969 년부터 1973 년까지 AT & T Bell Labs의 Dennis Ritchie가 개발했습니다.

1979 년 벨 연구소 (Bell Labs)의 비얀 스트로 우 스트롭 (Bjarne Stroustrup)이 개발했습니다.

소스 코드

자유 형식 프로그램 소스 코드

원래 C 프로그래밍 언어로 개발되었습니다.

언어

절차 중심 언어

절차 적 및 객체 지향 프로그래밍 패러다임을 모두 지원합니다. 따라서 종종 하이브리드 언어라고합니다.

접근

하향식 접근법을 따릅니다.

상향식 접근법을 따른다.

관계

C는 C ++의 하위 집합입니다. C ++ 코드를 실행할 수 없습니다.

C ++는 C의 상위 집합입니다. C ++은 C 코드의 대부분을 실행할 수 있지만 C는 C ++ 코드를 실행할 수 없습니다.

드라이브

함수 중심 언어

객체 중심 언어

초점

데이터보다는 방법 또는 프로세스에 중점을 둡니다.

방법이나 절차보다는 데이터에 중점을 둡니다.

빌딩 블록

기능들

사물

키워드

32 개의 키워드가 들어 있습니다.

52 개의 키워드 포함

수확량 개념

'C'언어는 프로 시저 지향 언어이므로 클래스, 객체, 상속, 다형성, 데이터 숨기기 등과 같은 OOPS 개념을 지원하지 않습니다.

C ++은 객체 지향 언어로서 클래스, 객체, 데이터 숨김, 다형성, 상속, 추상화 등을 지원합니다.

기능들

  • 함수 및 연산자 오버로딩을 지원하지 않습니다.
  • 구조체 내부에서 함수를 사용할 수 없다.
  • 가상 함수 및 참조 변수를 지원하지 않습니다.
  • 예외 처리를 지원하지 않습니다.
  • 참조 변수를 지원하지 않습니다.
  • 네임 스페이스 기능이 없습니다.
  • 다른 함수를 통해 main () 함수를 호출 할 수있다.
  • 함수 및 연산자 오버로딩을 지원합니다.
  • 구조 내부에서 함수를 사용할 수 있습니다.
  • 가상 함수 및 참조 변수를 지원합니다.
  • try 및 catch 블록을 사용하여 예외 처리를 지원합니다. 예외는 코드를 부정확하게 만드는 "하드"오류에 사용됩니다.
  • 참조 변수 지원
  • 이름 충돌을 피하는 NAMESPACE 기능을 사용합니다.
  • 다른 함수를 통해 main () 함수를 호출 할 수 없습니다.

메모리 함수

메모리 할당 및 할당 해제에 calloc (), malloc () 및 free () 함수를 사용합니다.

새로운 연산자를 사용하고 동일한 목적으로 삭제합니다.

캡슐화

지원하지 않습니다. 데이터와 함수는 별도의 자유 개체입니다.

캡슐화를 지원합니다. 데이터와 함수는 객체의 형태로 함께 캡슐화됩니다. Objects 클래스는 객체 구조의 청사진을 제공합니다.

정보 숨기기

C는 정보 숨기기를 지원하지 않습니다. 여기서 데이터는 자유 엔티티이며 외부 코드로 조작 할 수 있습니다.

캡슐화는 데이터 구조와 연산자가 의도 한대로 사용되도록 데이터를 숨 깁니다.

데이터

기본 제공 및 원시 데이터 형식을 지원합니다.

비 객체 지향으로 인해 데이터가 보호되지 않습니다.

내장 및 사용자 정의 데이터 유형을 모두 지원합니다.

C ++에서 데이터 보안 (숨김)

수평

저수준 언어

중간 수준 언어

입출력

'C'언어는 입출력을 위해 scanf () 및 printf ()를 사용합니다.

'C ++'언어는 입출력을 위해 cin >> 및 cout << 연산자를 사용합니다.

변수 선언

C는 프로그램 상단에 모든 변수를 선언해야합니다.

C ++에서 변수는 사용하기 전에 프로그램의 어느 위치에서나 선언 할 수 있습니다.

다중 선언

전역 변수의 다중 선언이 허용됩니다.

전역 변수에 대한 다중 선언은 허용되지 않습니다.

매핑

데이터와 함수 간의 매핑은 어렵고 복잡합니다.

데이터와 함수 사이의 매핑은 "Objects"를 사용하여 사용할 수 있습니다.

GUI 프로그래밍

GUI 프로그래밍을위한 GTK 툴 지원

C ++은 GUI 프로그래밍을위한 Qt 툴을 지원합니다.

계승

C에서 상속을 사용할 수 없습니다.

C ++에서 상속 가능

파일 확장자

파일 확장명이 .c입니다.

파일 확장명이 .cpp입니다.

기본 헤더 파일

C 언어에서 사용되는 기본 헤더 파일은 stdio.h입니다.

C ++에서 사용되는 기본 헤더 파일은 iosteam.h입니다.

C와 C ++의 차이점에 대한 몇 가지 예 :

예제들

기음

C ++

변수 선언

상단에서만 :

int i;

for (i = 10; i <10; i ++)

프로그램의 어느 곳에서나 :

for (int i = 10; i <10; i ++)

메모리 할당

Malloc :

int * x = malloc (sizeof (int));

int * x_array = malloc (sizeof (int) * 10);

새로운:

int * x = 새로운 int;

int * x_array = 새로운 int [10];

메모리 방출

비어 있는:

무료 (x);

무료 (x_array);

지우다:

x를 삭제하십시오;

delete [] x_array;

추천

관련 기사

  • 차이점: Android와 Windows Phone의 차이점

    Android와 Windows Phone의 차이점

    주요 차이점 : Android는 스마트 폰 및 태블릿을위한 오픈 소스, 무료 Linux 기반 운영체제입니다. 이 시스템은 안드로이드 Inc.에 의해 설계되고 개발되었으며, 2005 년에 Google이 자금을 조달하고 나중에 구입했습니다. Windows Phone은 Microsoft Corporation에서 개발 및 판매 한 일련의 독점 소프트웨어입니다. Windows Phone은 폐쇄 형이므로 회사에서 전적으로 개발되었으며 저작권으로 보호됩니다. 이 회사는 구형 Windows Mobile OS에 비해 많은 새로운 기능을 제공합니다. 스마트 폰은 최근의 현상이며 항상 인기있는 것은 아닙니다. 안드로이드 대 아이폰 대 윈도우 논쟁 이전에는 시장을 통치했던 윈도우 팜 파일럿이나 포켓 PC 만
  • 차이점: 자바와 코어 자바의 차이점

    자바와 코어 자바의 차이점

    주요 차이점 : Java는 C 언어의 영향을받은 프로그래밍 언어입니다. C 및 C ++에서 문법의 대부분을 파생하지만, 어느 것보다 낮은 수준의 기능을 가지고 있습니다. Java는 이전 언어와 비교하여 구현 종속성이 적도록 설계된 범용 프로그래밍 언어입니다. Java와 Core Java의 주요 차이점은 Java는 프로그래밍 언어이고 Core Java는 컴퓨팅 플랫폼입니다. 코어 자바는 일반적으로 Java Platform Standard Edition을 참조하는 속어로 사용됩니다. 컴퓨팅 플랫폼을 사용하면 개발 된 소프트웨어를 실행할 수 있습니다. Java는 C 언어의 영향을받은 프로
  • 차이점: 수료증과 디플로마의 차이점

    수료증과 디플로마의 차이점

    주요 차이점 : 졸업장은 대학이나 대학교와 같은 교육 기관에서 발행 한 문서입니다. 수령자가 연구 과정을 성공적으로 완료했음을 나타냅니다. 그러나 인증서는 사실 또는 인증을 나타내는 문서이거나 인증서에 명시된 내용이 사실임을 입증하는 데 사용할 수 있습니다. 인증서 및 학위는 일반적으로 인정을 논의 할 때 사용되는 용어입니다. 너무나도 정의가 흐려지고 병합되었습니다. 그러나이 두 기능은 별개의 기능을 가지고 완전히 다른 것을 나타냅니다. Dictionary.com에 따르면 졸업장은 "교육 기관에서 학위를 수여하거나 그 사람이 만족스럽게 학업 과정을 마쳤다는 것을 증명하는"문서입니다. 또한 명예, 특권을 부여하는 문
  • 차이점: 기본 앱과 하이브리드 앱의 차이점

    기본 앱과 하이브리드 앱의 차이점

    주요 차이점 : 기본 앱은 모바일 시스템 용으로 특별히 개발 된 애플리케이션입니다. 네이티브 앱은 특정 플랫폼 용 플랫폼 SDK, 도구 및 언어를 사용하여 개발됩니다. 다른 앱의 하이브리드 앱은 HTML 5, CSS 및 JavaScript와 같은 웹 언어로 개발 된 앱입니다. 그런 다음 이러한 응용 프로그램은 네이티브 컨테이너에서 실행되므로 모든 모바일 시스템에서 실행할 수 있습니다. 응용 프로그램의 약자 인 응용 프로그램은 특정 목적을 수행하는 데 사용할 수있는 프로그램 또는 프로그램 그룹입니다. 우리가 사용하는 모든 소프트웨어는 기술적으로 응용 프로그램이지만 '앱'이라
  • 차이점: 겨자 기름과 해바라기 기름의 차이점

    겨자 기름과 해바라기 기름의 차이점

    주요 차이점 : 겨자 오일과 해바라기 오일은 의료 혜택으로 유명하기 때문에 일상 생활에서 더 많이 섭취됩니다. 그들의 이름에서 알 수 있듯이, 이들은 그들의 출처, 즉 겨자 및 해바라기 씨앗. 오늘날의 시장에서 석유는 의료 및 상업 분야에서 큰 역할을합니다. 필수 지방산은 요즘 뉴스에 나오는 '좋은 지방'이며 매우 뜨거운 연구 주제입니다. 그러나, 이상적으로 소비해야하는 오일의 종류는 끝없는 과학적 논쟁의 문제입니다. 이상적인식이 섭취와 여러 가지 기름에서 얻은 통제에 관한 많은 이론과 법률이 제안되었습니다. 겨자 기름과 해바라기 기름은 지역적으로 유명한 기름으로 건강과식이 요법으로 유명합니다.
  • 차이점: 크림 핑 아이언과 컬링 아이언의 차이점

    크림 핑 아이언과 컬링 아이언의 차이점

    주요 차이점 : 크림 핑 아이언은 곧게 펴는 아이언과 비슷하지만 가열판에 융기가 있습니다. 접시의 융기 부분은 머리카락이 주름진 모양을 갖도록합니다. 압착은 머리카락이 톱니와 비슷한 매우 작은 물결 모양으로 물결 모양이되게합니다. 헤어 아이언은 머리카락에 여러 가지 방법과 제품을 사용하여 머리카락에 파도와 컬을 만들 수있는 헤어 아이언 유형입니다. 컬링 아이언은 원통형이며 플라스틱 손잡이가 달린 금속 통을 가지고 있습니다. 크림 핑 아이언과 컬링 아이언은 헤어 스타일링에 사용되는 헤어 아이언의 두 가지 유형입니다. 그들은 둘 다 그들이 만드는 스타일의 유형이 다
  • 차이점: Microsoft Surface RT와 Asus Padfone Infinity의 차이점

    Microsoft Surface RT와 Asus Padfone Infinity의 차이점

    주요 차이점 : Microsoft Surface RT는 약 148ppi 밀도의 10.6 인치 TFT HD 정전 용량 터치 스크린을 갖춘 타블렛입니다. 화면은 진정한 16 : 9 종횡비를 제공합니다. 그러나 OS는 이전 Windows PC 프로그램과 호환되지 않습니다. Asus Padfone Infinity 스마트 폰은 용량 성 멀티 터치 패널을 갖춘 매끄러운 5 인치 풀 HD 1920x1080, Super IPS +이며 약 441ppi의 밀도를 제공합니다. 이 기기는 바 폰으로 구부러진 모서리는 'iPhone'과 'HTC One'과 비슷한 모양을하고있다. Asus Padfone Infinity Dock은 기본적으로 10 인치 태블릿 셸로, 사용자가 뒷면의 매끄러운 슬롯에 밀어 넣으면 태블릿에 휴대 전화를 도킹 할 수 있습니다. 더 크고, 더 좋고, 더 유능한 스마트 폰을위한 시
  • 차이점: Ajax와 jQuery의 차이점

    Ajax와 jQuery의 차이점

    주요 차이점 : AJAX는 Asynchronous JavaScript 및 XML의 약자입니다. 웹 사이트 디자인에 사용되는 웹 개발 프로그램의 그룹입니다. 이 프로그램은 기본 프로그래밍을위한 XHTML, 스타일링을위한 CSS, 상호 작용을위한 DOM, XML 및 XSLT를 사용한 데이터 교환, XMLHttpRequest 및 JavaScript의 조합을 사용하여 대화식 웹 응용 프로그램을 만듭니다. 반면에 jQuery는 다중 브라우저 JavaScript 라이브러리입니다. jQuery는 무료 오픈 소스 소프트웨어입니다. 그것은 MIT 라이센스에 의거하여 라이센스가 부여됩니다. 이것은 HTML의 클라이언트 측 스크립팅을 단순화하기 위해 고안되었으며 현재 수많은 웹 사이트에서 사용되고 있습니다. AJAX는 비동기 JavaScript 및 XML의 약자입니다. 웹
  • 차이점: WAP과 인터넷의 차이점

    WAP과 인터넷의 차이점

    주요 차이점 : 인터넷은 상호 연결된 컴퓨터 네트워크의 글로벌 시스템입니다. 이것은 우리가 컴퓨터와 모뎀을 통해 연결하는 네트워크입니다. WAP은 모바일 무선 네트워크를 통해 정보에 액세스하기위한 기술 표준 인 무선 응용 프로그램 프로토콜입니다. 이것은 우리가 휴대 전화와 스마트 폰에서 웹 페이지를보고 전자 메일과 소셜 네트워킹 사이트를 확인하는 데 사용하는 것입니다. 인터넷은 상호 연결된 컴퓨터 네트워크의 글로벌 시스템입니다. 이것은 우리가 컴퓨터와 모뎀을 통해 연결하는 네트워크입니다. WAP은 모바일 무선 네트워크를 통해 정보에 액세스하기위한 기술 표준 인 무선 응용 프로그램 프로토콜입니다.

에디터의 선택

종료와 사직의 차이점

중요한 차이점 : 끝내는 것은 비공식적으로 사임하는 것입니다. 본질적으로 사형은 공식적이고 전문적으로 사용되는 반면 사직은 좀 더 구어체와 비공식으로 사용되는 것을 제외하고는 본질적으로 같은 의미이다. 모든 목적을 위해 종료하고 사직하는 것은 똑같습니다. 둘 다 직원이 자신의 자유 의지에서 일을 떠났음을 나타냅니다. 끝내는 것은 사임을 말하는 비공식적 인 방법입니다. 본질적으로 사형은 공식적이고 전문적으로 사용되는 반면 사직은 좀 더 구어체와 비공식으로 사용되는 것을 제외하고는 본질적으로 같은 의미이다. 그러나, 만약 누군가가 질질 끌기를 원한다면, 두 용어 사이에 몇 가지 차이점이 생길 수 있습니다. 비공식적 인 것을 그만두고