W pliku podstaw1.c znajduje się szereg instrukcji przypisania. Na początku definiujemy trzy zmienne typu int. Przy czym zmienną c inicjalizujemy na wartość 4. Inicjalizacja jest to przypisanie wartości obiektom w momencie ich definicji, czyli powołanio do życia. Zmienna globalna jest w chwili definiowania automatycznie inicjalizowana na zero. Właśnie taką wartość reprezentuje zmienna a. Natomiast zwykla zmienna lokalna (automatyczna, niestatyczna) nie jest inicjalizowana na zero. Dopóki sami nie przypiszemy jej konkretnej wartości, będzie zawierała śmieci (jakieś przypadkowe wartości). Sprawdzamy to w wywołaniu funkcji printf.
Z początkowych instrukcji przypisania do ciekawszej należy dzielenie modulo, którego wynikiem jest reszta z dzielenia. W naszym przykładzie a%c równa się zero, ponieważ tyle wynosi reszta z dzielenia 8 przez 2. Pozostałe instrukcje podstawiają pod zmienną b wyniki podstawowych operacji arytmetycznych na zmiennych a i c. Wykorzystywane są tutaj dwuargumentowe operatory arytmetyczne:
Bardziej złożona instrukcja przypisania jest nieco dalej. Wartością zmiennej b będzie wynik obliczenia prawostronnego wyrażenia. Najpierw wykonywane jest obliczenie wyrażenia, a dopiero później podstawienie obliczonego wyniku. Jak widzimy w tej instrukcji przypisania pojawia się po prawej stronie zmienna b - do obliczeń użyta będzie jej aktualna wartość tj. zero. Także w kolejnych instrukcjach inkrementacji i podniesienia do kwadratu mamy podobną sytuację.
Wielokrotne podstawienie postaci a = b = c = 10 jest czytane od prawej do lewej; tzn. najpierw wartość 10 zostaje przypisana zmiennej c, następnie aktualna wartość tej zmiennej, czyli właśnie 10 zostaje podstawiona pod zmienną b, aż w końcu zostaje ona przypisana ostatniej zmiennej a (pierwszej od lewej). Mówimy, że operator przypisania jest prawostronnie łączny.