Иницијализација низова

Низ се може иницијализовати, односно могу се доделити почетне вредности елементима низа и то тако што се између витичастих заграда ( { и } ) наводе редом вредности сваког елемента низа. Ове почетне вредности морају бити константе! Димензија низа се у том случају аутоматски одређује на основу броја иницијализатора и није неопходно наводити је између [].

Ако се димензија наведе, не сме бити мања од броја иницијализатора у листи. Ако је већа, остали елементи низа попуњавају се нулама.

Пример:
Наредба

int a[10] = {0, 1, 2, 3, 4 ,5, 6, 7, 8, 9};

дефинише низ a величине 10, односно блок од 10 суседних објеката у меморији са именима a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8] и a[9] и вредностима 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 редом.

Пример: Програм илуструје иницијализацију низова.

#include <stdio.h>
main()
{
/* Niz inicijalizujemo navodjenjem vrednosti izmedju viticastih
zagrada. Dimenzija niza se odredjuje automatski na osnovu
broja inicijalizatora. */
int a[] = {1, 2, 3, 4, 5, 6};
/* Broj elemenata niza */
int n = sizeof(a) / sizeof(int); /* primenom operatora sizeof odredjujemo velicinu, odnosno broj elemenata niza. sizeof(a) vraca koliko bajtova zauzima ceo niz a, a sizeof(int) vraca koliko bajtova zauzima jedan podatak tipa int! */
int i;
/* Ispisujemo nizove */
for(i = 0; i < n; i++)
printf("a[%d] = %d\n", i, a[i]);
}

Оператор sizeof:

Оператор sizeof() је унарни оператор који се може примењивати на податке и типове. Ако се примени на тип T, тада је вредност израза sizeof(T) број бајтова који заузима један податак тог типа.

Ако се примени на податак (или произвољан израз), тада sizeof(izraz) има вредност броја бајтова које заузима податак, имајући у виду тип податка
(израза).

Оператор sizeof даје вредност типа int.

Вредност израза sizeof се рачуна у време превођења програма, јер је већ тада јасно која је величина објекта на који се примењује.

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s