C/Składnia: Różnice pomiędzy wersjami

Z Wikibooks, biblioteki wolnych podręczników.
< C
Usunięta treść Dodana treść
Derbeth (dyskusja | edycje)
Derbeth (dyskusja | edycje)
m - link wsteczny, popr. linków
Linia 1: Linia 1:
<noinclude><small>< [[C]]</small></noinclude>

'''Uwaga''': przedstawione tutaj informacje nie są w stanie zastąpić treści całego podręcznika.
'''Uwaga''': przedstawione tutaj informacje nie są w stanie zastąpić treści całego podręcznika.


Linia 12: Linia 10:
<tr>
<tr>
<td>'''auto'''</td>
<td>'''auto'''</td>
<td>[[Programowanie:C:Zmienne#auto|Zmienne]]</td>
<td>[[C/Zmienne#auto|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''break'''</td>
<td>'''break'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#break|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#break|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''case'''</td>
<td>'''case'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#case|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#case|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''char'''</td>
<td>'''char'''</td>
<td>[[Programowanie:C:Zmienne#char|Zmienne]]</td>
<td>[[C/Zmienne#char|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''const'''</td>
<td>'''const'''</td>
<td>[[Programowanie:C:Zmienne#Stałe|Zmienne]]</td>
<td>[[C/Zmienne#Stałe|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''continue'''</td>
<td>'''continue'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#continue|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#continue|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''default'''</td>
<td>'''default'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#Instrukcja switch|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#Instrukcja switch|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''do'''</td>
<td>'''do'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#Trzecie podejście do zagadnienia pętli - do/while|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#Trzecie podejście do zagadnienia pętli - do/while|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''double</td>
<td>'''double</td>
<td>[[Programowanie:C:Zmienne#doube|Zmienne]]</td>
<td>[[C/Zmienne#doube|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''else'''</td>
<td>'''else'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#A co będzie, jeśli... - instrukcja if|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#A co będzie, jeśli... - instrukcja if|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''enum'''</td>
<td>'''enum'''</td>
<td>[[Programowanie:C:Typy złożone#Typ wyliczeniowy|Typy złożone]]</td>
<td>[[C/Typy złożone#Typ wyliczeniowy|Typy złożone]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''extern'''</td>
<td>'''extern'''</td>
<td>[[Programowanie:C:Biblioteki#Ograniczanie dostępu do funkcji i zmiennych|Biblioteki]]</td>
<td>[[C/Biblioteki#Zmiana dostępu do funkcji i zmiennych (static i extern)|Biblioteki]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''float'''</td>
<td>'''float'''</td>
<td>[[Programowanie:C:Zmienne#float|Zmienne]]</td>
<td>[[C/Zmienne#float|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''for'''</td>
<td>'''for'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#Kolejny sposób na pętlę - instrukcja for|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#Kolejny sposób na pętlę - instrukcja for|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''goto'''</td>
<td>'''goto'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#goto|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#goto|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''if'''</td>
<td>'''if'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#A co będzie, jeśli... - instrukcja if|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#A co będzie, jeśli... - instrukcja if|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''int'''</td>
<td>'''int'''</td>
<td>[[Programowanie:C:Zmienne#int|Zmienne]]</td>
<td>[[C/Zmienne#int|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''long'''</td>
<td>'''long'''</td>
<td>[[Programowanie:C:Zmienne#short i long|Zmienne]]</td>
<td>[[C/Zmienne#short i long|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''register'''</td>
<td>'''register'''</td>
<td>[[Programowanie:C:Zmienne#register|Zmienne]]</td>
<td>[[C/Zmienne#register|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
Linia 92: Linia 90:
<tr>
<tr>
<td>'''short'''</td>
<td>'''short'''</td>
<td>[[Programowanie:C:Zmienne#short i long|Zmienne]]</td>
<td>[[C/Zmienne#short i long|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''signed'''</td>
<td>'''signed'''</td>
<td>[[Programowanie:C:Zmienne#signed i unsigned|Zmienne]]</td>
<td>[[C/Zmienne#signed i unsigned|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''static'''</td>
<td>'''static'''</td>
<td>[[Programowanie:C:Zmienne#static|Zmienne]]</td>
<td>[[C/Biblioteki#Zmiana dostępu do funkcji i zmiennych (static i extern)|Biblioteki]], [[Programowanie:C:Zmienne#static|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''struct'''</td>
<td>'''struct'''</td>
<td>[[Programowanie:C:Typy złożone#Struktury|Typy złożone]]</td>
<td>[[C/Typy złożone#Struktury|Typy złożone]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''switch'''</td>
<td>'''switch'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#Instrukcja switch|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#Instrukcja switch|Instrukcje sterujące]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''typedef'''</td>
<td>'''typedef'''</td>
<td>[[Programowanie:C:Typy złożone#typedef|Typy złożone]]</td>
<td>[[C/Typy złożone#typedef|Typy złożone]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''union'''</td>
<td>'''union'''</td>
<td>[[Programowanie:C:Typy złożone#Unie|Typy złożone]]</td>
<td>[[C/Typy złożone#Unie|Typy złożone]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''unsigned'''</td>
<td>'''unsigned'''</td>
<td>[[Programowanie:C:Zmienne#signed i unsigned|Zmienne]]</td>
<td>[[C/Zmienne#signed i unsigned|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
Linia 128: Linia 126:
<tr>
<tr>
<td>'''volatile'''</td>
<td>'''volatile'''</td>
<td>[[Programowanie:C:Zmienne#volatile|Zmienne]]</td>
<td>[[C/Zmienne#volatile|Zmienne]]</td>
</tr>
</tr>
<tr>
<tr>
<td>'''while'''</td>
<td>'''while'''</td>
<td>[[Programowanie:C:Instrukcje sterujące#Wprowadzenie do pętli - instrukcja while|Instrukcje sterujące]]</td>
<td>[[C/Instrukcje sterujące#Wprowadzenie do pętli - instrukcja while|Instrukcje sterujące]]</td>
</tr>
</tr>
</table>
</table>
Linia 294: Linia 292:
=== Operator ternarny ===
=== Operator ternarny ===
Istnieje jeden operator przyjmujący trzy argumenty - jest to operator wyrażenia warunkowego: <tt>a ? b : c</tt>. Zwraca on '''b''' gdy '''a''' jest prawdą lub '''c''' w przeciwnym wypadku.
Istnieje jeden operator przyjmujący trzy argumenty - jest to operator wyrażenia warunkowego: <tt>a ? b : c</tt>. Zwraca on '''b''' gdy '''a''' jest prawdą lub '''c''' w przeciwnym wypadku.

<noinclude><small>< [[C]]</small></noinclude>

Wersja z 21:45, 17 lis 2006

Uwaga: przedstawione tutaj informacje nie są w stanie zastąpić treści całego podręcznika.

Symbole i słowa kluczowe

Język C definiuje pewną ilość słów, za pomocą których tworzy się np. pętle itp. Są to tzw. słowa kluczowe, tzn. nie można użyć ich jako nazwy zmiennej, czy też stałej (o nich poniżej). Oto lista słów kluczowych języka C:

Słowo Opis w tym podręczniku
auto Zmienne
break Instrukcje sterujące
case Instrukcje sterujące
char Zmienne
const Zmienne
continue Instrukcje sterujące
default Instrukcje sterujące
do Instrukcje sterujące
double Zmienne
else Instrukcje sterujące
enum Typy złożone
extern Biblioteki
float Zmienne
for Instrukcje sterujące
goto Instrukcje sterujące
if Instrukcje sterujące
int Zmienne
long Zmienne
register Zmienne
return Procedury i funkcje
short Zmienne
signed Zmienne
static Biblioteki, Zmienne
struct Typy złożone
switch Instrukcje sterujące
typedef Typy złożone
union Typy złożone
unsigned Zmienne
void Wskaźniki
volatile Zmienne
while Instrukcje sterujące

Polskie znaki

Pisząc program, możemy stosować polskie litery (tj. "ąćęłńóśźż") tylko w:

  • komentarzach
  • ciągach znaków (łańcuchach)

Niedopuszczalne jest stosowanie polskich znaków w innych miejscach.

Operatory

Operatory arytmetyczne

Są to operatory wykonujące znane wszystkim dodawanie,odejmowanie itp.:

operator znaczenie
+ dodawanie
- odejmowanie
* mnożenie
/ dzielenie
% dzielenie modulo - daje w wyniku samą resztę z dzielenia
= operator przypisania - wykonuje działanie po prawej stronie i wynik przypisuje obiektowi po lewej

Operatory logiczne

Służą porównaniu zawartości dwóch zmiennych według okteślonych kryteriów:

Operator Rodzaj porównania
== czy równe
> większy
>= większy bądź równy
< mniejszy
<= mniejszy bądź równy
!= czy różny(nierówny)

Są jeszcze operatory ,służące do grupowania porównań (Patrz też:logika w Wikipedi):

|| lub(OR)
&& i,oraz(AND)
 ! negacja(NOT)

Operatory binarne

Są to operatory, które działają na bitach.

operator funkcja przykład
| suma bitowa(OR) 5 | 2 da w wyniku 7 ( 00000101 OR 00000010 = 00000111)
& iloczyn bitowy 7 & 2 da w wyniku 2 ( 00000111 AND 00000010 = 00000010)
~ negacja bitowa ~2 da w wyniku 253 ( NOT 00000010 = 11111101 )
>> przesunięcie bitów o X w prawo 7 >> 2 da w wyniku 1 ( 00000111 >> 2 = 00000001)
<< przesunięcie bitów o X w lewo 7 << 2 da w wyniku 28 ( 00000111 << 2 = 00011100)
^ alternatywa wyłączna 7 ^ 2 da w wyniku 5 ( 00000111 ^ 00000010 = 00000101)

Operatory inkrementacji/dekrementacji

Służą do dodawania/odejmowania od liczby wartości jeden.
Przykłady:

Operacja Opis operacji Wartość wyrażenia
x++ zwiększy wartość w x o jeden wartość zmiennej x przed zmianą
++x zwiększy wartość w x o jeden wartość zmiennej x powiększona o jeden
x-- zmniejszy wartość w x o jeden wartość zmiennej x przed zmianą
--x zmniejszy wartość w x o jeden wartość zmiennej x pomniejszona o jeden

Parę przykładów dla zrozumienia:

int a=7;
if ((a++)==7) /* najpierw porównuje, potem dodaje */ 
  printf ("%d\n",a); /* wypisze 8 */
if ((++a)==9) /* najpier dodaje, potem porównuje */
  printf ("%d\n", a); /* wypisze 9 */

Analogicznie ma się sytuacja z operatorami dekrementacji.

Pozostałe

Operacja Opis operacji Wartość wyrażenia
*x operator wyłuskania dla wskaźnika wartość trzymana w pamięci pod adresem przechowywanym we wskaźniku
&x operator pobrania adresu zwraca adres zmiennej
x[a] operator wybrania elementu tablicy zwraca element tablicy na miejscu a+1
x.a operator wyboru składnika a ze zmiennej x wybiera składnik ze struktury lub unii
x->a operator wyboru składnika a przez wskaźnik do zmiennej x wybiera składnik ze struktury gdy używamy wskaźnika do struktury zamiast zwykłej zmiennej

Operator ternarny

Istnieje jeden operator przyjmujący trzy argumenty - jest to operator wyrażenia warunkowego: a ? b : c. Zwraca on b gdy a jest prawdą lub c w przeciwnym wypadku.