[ NaturePhoenix @ 18.03.2009. 11:36 ] @
Dal moze netko objasniti po kojem principu se ovo odredjuje.

Kaze:

Koji tip imaju sljedeci izrazi:

char c; int i; float f

a) c+2.1
b) f+c
c) 3.14*f
d) i*3
e) c+2
f) 2*f
g) i*'2'
h) c+'2'
i) '2'*f


rjesenjA

float
float
float
int
int
float
int
char
float


Drugo:
Kako mogu nekom elementu niza preko pokazivaca pridjelit neku drugu vrijednost,npr elementu x[2] pridjelit vrijednost 5
[ Wajda.W @ 18.03.2009. 20:52 ] @
Ovako, u c-u su ti tipovi podataka (osnovnih) odradjeni kao podskupovi, tako imas da je float najsiri skup, zatim int je podskup skupa float, a char je podskup skupa int pa samim tim i podskup float.
Tako da ako imas operacije iz razlicitih skupova rezultat operacije ce biti uvek iz nadredjenog (veceg) skupa.
To bi trebalo da odgovori na prvi deo.
Za drugi deo:


Code:

int x[4],*p;

 x[2]=7;
printf("%d",x[2]);
 p=&x[2];
 *p=3;
 printf("%d",x[2]);

 p=x;
 p++;
 p++;
 *p=10;
 printf("%d",x[2]);


ili da dodelis odma pokazivacu vrednost odredjenog elementa (prvi nacin), ili da 'setas' pokazivacem po adresama elemenata niza pa kad dodjes do odgovarajuce da je promenis

p.s. nisam stavio vrednost 5, neg neku drugu, ali to ces lako da skontas ;)

pozdrav Vajda
[ NaturePhoenix @ 18.03.2009. 21:17 ] @
Hvala,shvatio sam
[ X Files @ 18.03.2009. 21:52 ] @
Citat:

Kako mogu nekom elementu niza preko pokazivaca pridjelit neku drugu vrijednost,npr elementu x[2] pridjelit vrijednost 5


Ili ovako:

x[2] = 5; // <--- ovo...
*(x+2) = 5; // < --- ... moze i ovako.

Ispis:
printf("%d\n", *(x+2) );