Inhalt:
Das von C bekannte HelloWorld-Programm:
#include <stdio.h>
int main(void)
{
printf("hello world!\n");
return 0;
}
|
Das gleiche Programm in C++:
#include <iostream>
using namespace std; // cout bekanntmachen
int main()
{
cout << "Hello world!" << endl;
return 0;
}
|
Unterschiede zwischen C und C++:
| char | Ein Zeichen, 8 Bit, ASCII-codiert |
| short int = short | 16bit Ganzzahl mit Vorzeichen |
| int | 32bit Ganzzahl mit Vorzeichen |
| long int = long | 32 oder 64bit Ganzzahl mit Vorzeichen |
| float | Fließkommazahl für einfache Genauigkeit |
| double | Fließkommazahl für doppelte Genauigkeit |
| unsigned short int | 16bit-Zahl ohne Vorzeichen |
| unsigned int | 32bit-Zahl ohne Vorzeichen |
| unsigned long int | 32 oder 64bit Ganzzahl ohne Vorzeichen |
| char * | Adresse einer char-Variable (32/64bit) |
| void | Kein Wert (für Funktionen) |
bool b;
b = a < b; // Zuweisung - entweder "true" oder "false"
b = true;
b = false;
b = 1; // == true
b = 0; // == false
if (b) ... // Benutzen als Wahrheitswert
printf("b = %d\n", b); // b = 1
cout << "b = " << b << end; // b = 1
int i=1; i++; int j = i; j++;
int main()
{
int i;
for (int j=0; j<10; j++) {
int k;
{
double l;
...
} // l freigeben
} // j und k freigeben
} // i freigeben
int *p;
if (1) {
int i;
p = &i;
}
*p = 17; // Speicherschutzverletzung
int *p;
p = malloc(10 * sizeof(int));
if (p == NULL) {
cerr << "Kein Speicher mehr da!" << endl;
exit(1);
}
...
*p = 1; // Zugriff mit Pointer-Schreibweise
*(p+1) = 2; // Zugriff mit Pointer-Schreibweise
p[2] = 3; // Zugriff mit Array-Schreibweise
p++; // XXX Ganz schlechte Idee!
...
free(p);
*p = 42; // XXX Speicher ist nicht mehr definiert!
int a[5] = { 0, 1, 2, 3, 4 };
int b[] = { 0, 1, 2, 3, 4 };
char hallo[] = { 'H', 'a', 'l', 'l', 'o', '\0' };
char welt[] = "Welt!";
int c[2][3] = { { 11, 12, 13}, {21, 22, 23} };
int name[5]; name[0] = 17; // L-Wert int i = name[0]; // R-Wert
int name[5]; *name = 42; // L-Wert int i = *name; // R-Wert *(name + 1) = i; // mit Pointerarithmetik int j = *(name + 1);