Maison développement back-end Tutoriel C#.Net Ce que les programmeurs débutants doivent savoir sur la différence entre le langage C et le C++

Ce que les programmeurs débutants doivent savoir sur la différence entre le langage C et le C++

Jun 19, 2020 pm 01:42 PM
c++ c语言

Ce que les programmeurs débutants doivent savoir sur la différence entre le langage C et le C++

Le langage C que les programmeurs débutants devraient connaître La différence entre C++ et C++

Lorsque vous apprenez la programmation pour la première fois, beaucoup de gens pensent que le langage C et le C++ sont identiques ? Aujourd'hui, je vais présenter en détail les différences entre le langage C et le C++. Apprenons ensemble.

1. Mots-clés

Les marques bleues sont des mots-clés du langage C. C++ hérite de tous les mots-clés du langage C. Les marques rouges suivantes sont des mots-clés C++ que le langage contient. pas (selon c++98, C++ contient 63 mots-clés)
Ce que les programmeurs débutants doivent savoir sur la différence entre le langage C et le C++

2. Différences entre les fichiers source
Suffixe du fichier du langage C Le suffixe du nom de fichier d'origine. pour .c et c++ est .cpp
Si rien n'est donné lors de la création du fichier source, la valeur par défaut est .cpp
3 La valeur de retour est différente
En langage C, si une fonction ne spécifie pas de. return Type de valeur, la valeur par défaut est de type int et renvoie un nombre aléatoire, généralement 0XCCCCCCCC
En C++, si la fonction ne renvoie pas de valeur, elle doit être spécifiée comme type void, sinon la compilation ne passera pas
4. Liste de paramètres
En langage C, lorsqu'une fonction n'a pas de liste de paramètres spécifiée, elle peut accepter n'importe quel nombre de paramètres par défaut
En C++, il existe une détection stricte du type de paramètre. Une fonction sans paramètre. La liste est par défaut annulée et ne reçoit aucun paramètre.
Paramètres par défaut
Les paramètres par défaut sont des paramètres de fonction qui spécifient une valeur par défaut lorsqu'ils sont déclarés et définis. Lors de l'appel de cette fonction, si aucun argument n'est spécifié, les valeurs par défaut sont utilisées, sinon les arguments spécifiés sont utilisés.
Le code suivant :

#include<iostream>using namespace std;void test(int a = 1)
{    cout << a << endl;
}int main()
{
    test();
    test(10);//输出的结果是1
    return 0;//函数输出结果是10}
Copier après la connexion

Les paramètres par défaut sont divisés en deux catégories, l'une est complète par défaut et l'autre est semi-par défaut.
Le premier est celui par défaut complet. Tous les paramètres des paramètres par défaut complets ont des valeurs par défaut. Si aucun paramètre n'est transmis manuellement, le compilateur utilisera les paramètres de la liste des paramètres par défaut. Mais il convient de noter ici que si seuls certains paramètres sont transmis lors du passage des paramètres, la valeur correspondra de gauche à droite.
Exemple de code :

#include<iostream>using namespace std;void test(int a = 1,int b = 2, int c = 3)
{    cout << a << " " << b << " " << c << endl;
}int main()
{
    test();//1 2 3
    test(10);//10 2 3
    test(10, 20);//10 20 3
    test(10, 20, 30);//10 20 30
    return 0;
}
Copier après la connexion

Démonstration du code de paramètre semi-par défaut :

void test(int a ,int b = 2, int c = 3)
{    cout << a << " " << b << " " << c << endl;
}void test1(int a, int b, int c = 3)
{    cout << a << " " << b << " " << c << endl;
}
Copier après la connexion

La fonction de test passe au moins un paramètre, et le Fonction test1 au moins Ce n'est qu'en passant deux paramètres que la fonction peut fonctionner normalement.

Remarque :
Les paramètres avec des valeurs par défaut doivent être placés à la fin de la liste des paramètres. Parce que les paramètres sont transmis de droite à gauche.
Les paramètres par défaut ne peuvent pas apparaître à la fois dans la déclaration et la définition de la fonction, un seul d'entre eux peut être laissé.
La valeur par défaut doit être une constante ou une
variable globale.
Le langage C ne prend pas en charge les valeurs par défaut.
5. C++ prend en charge la surcharge de fonctions, mais pas le langage C.
Dans le développement réel, nous devons parfois implémenter plusieurs fonctions avec des fonctions similaires, mais certains détails sont différents. Par exemple, si nous voulons échanger les valeurs de deux variables qui ont plusieurs types, tels que int, float, char, bool, etc., nous devons transmettre l'adresse de la variable dans la fonction via des paramètres. En langage C, les programmeurs doivent souvent concevoir trois fonctions avec des noms différents, et leurs prototypes de fonctions sont similaires aux suivants :

void swap1(int *a, int *b); //交换 int 变量的值
void swap2(float *a, float *b); //交换 float 变量的值
void swap3(char *a, char *b); //交换 char 变量的值
void swap4(bool *a, bool *b); //交换 bool 变量的值
Copier après la connexion

Mais en C++, cela est complètement inutile. C++ permet à plusieurs fonctions d'avoir le même nom, tant que leurs listes de paramètres sont différentes. Il s'agit d'une surcharge de fonctions (Function Overloading). Avec la surcharge, un nom de fonction peut être utilisé à plusieurs fins.

La liste des paramètres est également appelée signature des paramètres, comprenant le type de paramètre, le nombre de paramètres et l'ordre des paramètres. Tant qu'il y a une différence, elle est appelée une liste de paramètres différente.

#include <iostream>using namespace std;//交换 int 变量的值void Swap(int *a, int *b){int temp = *a;
*a = *b;
*b = temp;
}//交换 float 变量的值void Swap(float *a, float *b){float temp = *a;
*a = *b;
*b = temp;
}//交换 char 变量的值void Swap(char *a, char *b){char temp = *a;
*a = *b;
*b = temp;
}//交换 bool 变量的值void Swap(bool *a, bool *b){char temp = *a;
*a = *b;
*b = temp;
}int main(){//交换 int 变量的值int n1 = 100, n2 = 200;
Swap(&n1, &n2);cout<<n1<<", "<<n2<<endl;//交换 float 变量的值float f1 = 12.5, f2 = 56.93;
Swap(&f1, &f2);cout<<f1<<", "<<f2<<endl;//交换 char 变量的值char c1 = &#39;A&#39;, c2 = &#39;B&#39;;
Swap(&c1, &c2);cout<<c1<<", "<<c2<<endl;//交换 bool 变量的值bool b1 = false, b2 = true;
Swap(&b1, &b2);cout<<b1<<", "<<b2<<endl;return 0;
}
Copier après la connexion

Résultat de l'exécution :

200, 100 
56.93, 12.5 
B, A 
1, 0
Copier après la connexion

La surcharge est dans la même portée (même classe, même espace de noms, etc.) a plusieurs fonctions avec le même nom mais des paramètres différents. Le résultat de la surcharge est qu'un nom de fonction a de multiples utilisations, ce qui rend la dénomination plus pratique (dans les projets de taille moyenne et grande, nommer les variables, les fonctions et les classes est un problème épineux) et l'appel plus flexible.

Lors de l'utilisation de fonctions surchargées, les fonctions des fonctions portant le même nom doivent être identiques ou similaires. N'utilisez pas le même nom de fonction pour implémenter des fonctions complètement indépendantes. Bien que le programme puisse s'exécuter, la lisibilité n'est pas. bon et rend les gens confus.
Notez que différentes listes de paramètres incluent différents numéros, types ou ordres de paramètres. Il n'est pas acceptable d'avoir simplement des noms de paramètres différents. Les valeurs de retour des fonctions ne peuvent pas être utilisées comme base pour une surcharge.

Règles de surcharge des fonctions :

(1) Les noms de fonctions doivent être les mêmes.

(2) Les types de retour des fonctions peuvent être identiques ou différents.

(3)仅仅返回类型不同不足以成为函数的重载。
6、指针和引用
C语言中函数传参方式有两种:传值和传址
以传值方式,在函数调用过程中会生成一份临时变量用形参代替,最终把实参的值传递给新分配的临时形参。它的优点是避免了函数调用的副作用,却无法改变形参的值。如果要改变实参的值,只能通过指针传递。
指针可以解决问题,但是不安全,因此在C++中引入了引用。
引用:引用不是新定义的一个变量,他是原变量的一个别名,编译器不会为引用变量开辟空间,它和他引用的变量共用同一块内存空间。
类型& 变量(对象名)=引用变量
int &num1=num0;
引用特性;:
(1)引用定义时必须初始化
(2)一个变量可以有多个引用
(3)引用一旦绑定一个实体就不能改变为其他变量的引用
//指针和引用的区别
引用不可以为空,但指针可以为空
引用不可以改变指向,对一个对象”至死不渝”;但是指针可以改变指向,而指向其它对象
引用的大小是所指向的变量的大小,因为引用只是一个别名而已;指针是指针本身的大小,4个字节。

7、命名空间
在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或者名字污染,namespace关键字的出现就是解决这种问题。而C语言中没有。
8、输入与输出
cout代表c++的输出流
cin代表c++的输入流
它们都是在头文件“iostream”中定义。
“cout”必须与”<<”一起使用,“<<”起到插入的作用。
在一条语句中可以多次使用“<<”输出多个数据。
如:cout<

#include <iostream>using namespace std;int main()
{int a,b;cout<<"请输入a,b的值"<<endl;cin>>a>>b;cout<<"输出a的值"<<a<<"输出b的值"<<b<<endl;return 0;
}
Copier après la connexion

感谢大家的阅读,大家现在知道C语言和C++的区别了吗?                                  

本文转自:https://blog.csdn.net/qq_39539470/article/details/81268916

推荐教程:《C语言

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

C Structure des données du langage: représentation des données et fonctionnement des arbres et des graphiques C Structure des données du langage: représentation des données et fonctionnement des arbres et des graphiques Apr 04, 2025 am 11:18 AM

C Structure des données du langage: La représentation des données de l'arborescence et du graphique est une structure de données hiérarchique composée de nœuds. Chaque nœud contient un élément de données et un pointeur vers ses nœuds enfants. L'arbre binaire est un type spécial d'arbre. Chaque nœud a au plus deux nœuds enfants. Les données représentent StrustReenode {intdata; structTreenode * gauche; structureReode * droite;}; L'opération crée une arborescence d'arborescence arborescence (prédécision, ordre dans l'ordre et ordre ultérieur) Le nœud d'insertion de l'arborescence des arbres de recherche de nœud Graph est une collection de structures de données, où les éléments sont des sommets, et ils peuvent être connectés ensemble via des bords avec des données droites ou peu nombreuses représentant des voisins.

La vérité derrière le problème de fonctionnement du fichier de langue C La vérité derrière le problème de fonctionnement du fichier de langue C Apr 04, 2025 am 11:24 AM

La vérité sur les problèmes de fonctionnement des fichiers: l'ouverture des fichiers a échoué: les autorisations insuffisantes, les mauvais chemins de mauvais et les fichiers occupés. L'écriture de données a échoué: le tampon est plein, le fichier n'est pas écrivatif et l'espace disque est insuffisant. Autres FAQ: traversée de fichiers lents, encodage de fichiers texte incorrect et erreurs de lecture de fichiers binaires.

Comment produire un compte à rebours dans le langage C Comment produire un compte à rebours dans le langage C Apr 04, 2025 am 08:54 AM

Comment produire un compte à rebours en C? Réponse: Utilisez des instructions de boucle. Étapes: 1. Définissez la variable N et stockez le numéro de compte à rebours à la sortie; 2. Utilisez la boucle while pour imprimer en continu n jusqu'à ce que n soit inférieur à 1; 3. Dans le corps de la boucle, imprimez la valeur de n; 4. À la fin de la boucle, soustrayez N par 1 pour sortir le prochain plus petit réciproque.

Le concept des fonctions du langage C et leur format de définition Le concept des fonctions du langage C et leur format de définition Apr 03, 2025 pm 11:33 PM

Les fonctions de langue C sont des blocs de code réutilisables, des paramètres de réception pour le traitement et des résultats de retour. Il est similaire au couteau suisse, puissant et nécessite une utilisation minutieuse. Les fonctions incluent des éléments tels que la définition des formats, des paramètres, des valeurs de retour et des corps de fonction. L'utilisation avancée comprend des pointeurs de fonction, des fonctions récursives et des fonctions de rappel. Les erreurs communes sont le type de type et oublier de déclarer les prototypes. Les compétences de débogage comprennent l'impression des variables et l'utilisation d'un débogueur. L'optimisation des performances utilise des fonctions en ligne. La conception des fonctions doit suivre le principe de la responsabilité unique. La maîtrise des fonctions du langage C peut améliorer considérablement l'efficacité de la programmation et la qualité du code.

Quels sont les types de valeurs de retour de la fonction du langage C? Résumé des types de valeurs de retour de la fonction du langage C? Quels sont les types de valeurs de retour de la fonction du langage C? Résumé des types de valeurs de retour de la fonction du langage C? Apr 03, 2025 pm 11:18 PM

Les types de valeur de retour de la fonction de langue C incluent les types int, float, double, char, void et pointer. INT est utilisé pour retourner des entiers, Float et Double sont utilisés pour retourner des flotteurs, et Char retourne les caractères. void signifie que la fonction ne renvoie aucune valeur. Le type de pointeur renvoie l'adresse de mémoire, veillez à éviter les fuites de mémoire. Une structure ou un consortium peut renvoyer plusieurs données connexes.

CS-semaine 3 CS-semaine 3 Apr 04, 2025 am 06:06 AM

Les algorithmes sont l'ensemble des instructions pour résoudre les problèmes, et leur vitesse d'exécution et leur utilisation de la mémoire varient. En programmation, de nombreux algorithmes sont basés sur la recherche et le tri de données. Cet article présentera plusieurs algorithmes de récupération et de tri de données. La recherche linéaire suppose qu'il existe un tableau [20,500,10,5,100,1,50] et doit trouver le numéro 50. L'algorithme de recherche linéaire vérifie chaque élément du tableau un par un jusqu'à ce que la valeur cible soit trouvée ou que le tableau complet soit traversé. L'organigramme de l'algorithme est le suivant: Le pseudo-code pour la recherche linéaire est le suivant: Vérifiez chaque élément: Si la valeur cible est trouvée: return True return false C Implementation: # include # includeIntMain (void) {i

Quelles sont les règles de définition de fonction et d'appel dans le langage C? Quelles sont les règles de définition de fonction et d'appel dans le langage C? Apr 03, 2025 pm 11:57 PM

Une fonction de langue C se compose d'une liste de paramètres, d'un corps de fonction, d'un type de valeur de retour et d'un nom de fonction. Lorsqu'une fonction est appelée, les paramètres sont copiés dans la fonction via le mécanisme de transfert de valeur et n'affecteront pas les variables externes. Le pointeur passe directement à l'adresse mémoire, la modification du pointeur affectera les variables externes. La déclaration du prototype de fonction est utilisée pour informer le compilateur des signatures de fonction pour éviter les erreurs de compilation. L'espace de pile est utilisé pour stocker des variables et paramètres locaux de fonction. Trop de récursivité ou trop d'espace peut provoquer un débordement de pile.

Tutoriel sur la façon de représenter le plus grand diviseur commun des fonctions de langue C Tutoriel sur la façon de représenter le plus grand diviseur commun des fonctions de langue C Apr 03, 2025 pm 11:21 PM

Méthodes pour trouver efficacement et élégamment le plus grand diviseur commun dans le langage C: utiliser la division de phase pour résoudre en divisant constamment le reste jusqu'à ce que le reste est 0. Deux méthodes de mise en œuvre sont fournies: la récursivité et l'itération sont concises et claires, et la mise en œuvre itérative est plus élevée et plus stable. Faites attention à la gestion des nombres négatifs et des 0s, et envisagez une optimisation des performances, mais la division de phase elle-même est suffisamment efficace.

See all articles