Ściąga z języka C
Rozmiary danych poszczególnych typów i zakresy dozwolonych wartości (dla gcc wersja 10.2.1)
Typ | Rozmiar w bitach | Rozmiar w bajtach | Zakres dozwolonych wartości |
---|---|---|---|
unsigned char | 8 | 1 | 0 do 255 |
char | 8 | 1 | -128 do +127 |
unsigned short int | 16 | 2 | 0 do 65535 |
short int | 16 | 2 | -32768 do + 32767 |
unsigned int | 32 | 4 | 0 do 4294967295 |
int | 32 | 4 | - 2147483648 do +2147483647 |
unsigned long | 64 | 8 | 0 do +18446744073709551615 |
long int | 64 | 8 | -9223372036854775808 do +9223372036854775807 |
unsigned long long int | 64 | 8 | 0 do +18446744073709551615 |
long long int | 64 | 8 | -9223372036854775808 do +9223372036854775807 |
float | 32 (ok. 7 cyfr znacz.) | 4 | 1.17549435 × 10-38 do 3.40282347× 10+38 |
double | 64 (ok. 15 cyfr znacz.) | 8 | 2.2250738585072014 × 10-308 do 1.7976931348623157 × 10+308 |
long double | 96 (ok. 18 cyfr znacz.) (128?) | 12 (16?) | 10-4931 do 10+4932 |
Znaczenie, wiązanie i priorytet operatorów
Priorytet | Wiązanie | Symbol | Działanie |
---|---|---|---|
15 | lewe | ( ) | wywołanie funkcji |
15 | lewe | [ ] | indeksowanie |
15 | lewe | . -> | element struktury |
14 | prawe | ! | negacja logiczna |
14 | prawe | ~ | negacja bitowa |
14 | prawe | ++ | inkrementacja |
14 | prawe | -- | dekrementacja |
14 | prawe | - | zmiana znaku |
14 | prawe | (typ) | konwersja typu (rzutowanie) |
14 | prawe | * | wskazanie pośrednie |
14 | prawe | & | adres obiektu |
14 | prawe | sizeof | rozmiar obiektu |
13 | lewe | * / | mnożenie i dzielenie |
13 | lewe | % | dzielenie modulo |
12 | lewe | + - | dodawanie i odejmowanie |
11 | lewe | << >> | przesunięcie bitowe (w lewo i w prawo) |
10 | lewe | < <= | mniejsze i mniejsze równe |
10 | lewe | > >= | większe i większe równe |
9 | lewe | == != | równe i różne |
8 | lewe | & | bitowy iloczyn |
7 | lewe | ^ | bitowa różnica symetryczna |
6 | lewe | | | bitowa suma |
5 | lewe | && | iloczyn logiczny |
4 | lewe | || | suma logiczna |
3 | prawe | ? : | wyrażenie warunkowe |
2 | prawe | = += -= *= /= %= itd | podstawienia |
1 | lewe | , | oblicz i odrzuć |
Podstawowe konstrukcje języka C
#1.Instrukcja warunkowa:
if(warunek){
zestaw instrukcji;
}
else {
zestaw instrukcji;
}
#2.Instrukcje pętli:
while(warunek){
zestaw instrukcji;
}
do{
zestaw instrukcji;
}while(warunek);
for(instrukcja1;warunek;instrukcja2)
{
zestaw instrukcji;
}
#3.Instrukcja decyzyjna:
switch(wyrażenie całkowite)
{
case wyrażenie całkowite: zestaw instrukcji; break;
case wyrażenie całkowite: zestaw instrukcji; break;
default: zestaw instrukcji;
}
#4. Instrukcja przerwania pętli lub instrukcji switch:
break;
#5. Instrukcja kontynuacji:
continue;
#6. Instrukcja powrotu w miejsce wywołania:
return wyrażenie;
#7. Instrukcja skoku (nie używać na moich zajęciach):
goto etykieta;
#8. Instrukcja pusta:
;
#9. Instrukcja grupująca (blok):
{
zestaw deklaracji;
zestaw instrukcji;
}
#10. Instrukcja prosta:
wyrażenie;
if(warunek){
zestaw instrukcji;
}
else {
zestaw instrukcji;
}
#2.Instrukcje pętli:
while(warunek){
zestaw instrukcji;
}
do{
zestaw instrukcji;
}while(warunek);
for(instrukcja1;warunek;instrukcja2)
{
zestaw instrukcji;
}
#3.Instrukcja decyzyjna:
switch(wyrażenie całkowite)
{
case wyrażenie całkowite: zestaw instrukcji; break;
case wyrażenie całkowite: zestaw instrukcji; break;
default: zestaw instrukcji;
}
#4. Instrukcja przerwania pętli lub instrukcji switch:
break;
#5. Instrukcja kontynuacji:
continue;
#6. Instrukcja powrotu w miejsce wywołania:
return wyrażenie;
#7. Instrukcja skoku (nie używać na moich zajęciach):
goto etykieta;
#8. Instrukcja pusta:
;
#9. Instrukcja grupująca (blok):
{
zestaw deklaracji;
zestaw instrukcji;
}
#10. Instrukcja prosta:
wyrażenie;
Deklaracje typów zmiennych w języku C
Typy podstawowe
char, unsigned char, int, long int, unsigned int, unsigned long int, short int,
unsigned short int, long long int, unsigned long long int, float, double, long double.
unsigned short int, long long int, unsigned long long int, float, double, long double.
Typy pochodne. Jeśli T to typ podstawowy a D to indentyfikator to:
Postać deklaracji | Obiekt deklarowany |
---|---|
T D | zmienna typu T o nazwie D |
T D[5] | pięcio-elementowa tablica D o elementach typu T |
T D[4][8] | cztero-elementowa tablica D, której elementami są ośmio-elementowe tablice o elementach typu T |
T *D | D jest wskazaniem (adresem) obiektu typu T |
T *D[3] | trój-elementowa tablica wskazań na obiekty typu T |
T (*D)[5] | D jest wskazaniem na pięcio-elementową tablicę o elemntach typu T |
T D( ) | funkcja o nazwie D zwracająca wartość typu T |
T *D( ) | funkcja zwracająca wskazanie na obiekt typu T |
T (*D) ( ) | wskazanie na funkcję zwracającą wartość typu T |
T *(*(*D)[3])( ) | wskazanie na tablicę wskazań na funkcje zwracające wartości typu : wskazanie na obiekt typu T |
Deklaracje struktur i unii
struct nazwa{
lista deklaracji komponentów;
} lista nazw zmiennych strukturalnych;
Inicjowanie zmiennych i tablic
int a=12,b;
double tab[2][3]={ {1.0,2,3.1},{4,5.5,6.01} };
Prototypy funkcji
double rot(int axis, double x[], double angle);