Kezdőoldal » Számítástechnika » Programozás » Hogy kell értelmezni C ben az...

Hogy kell értelmezni C ben az alábbi pointer aritmetikát?

Figyelt kérdés

typedef struct {

fractional real;

fractional imag; }

fractcomplex;


// 1.

fractcomplex *p_cmpx = &sigCmpx[0] ;

fractional *p_real = &sigCmpx[0]. Real ;


//2

p_real = &sigCmpx[ (BLOCK_LENGTH/2) -1]. Real ;

p_cmpx = &sigCmpx[BLOCK_LENGTH-1] ;


//3

(*p_cmpx). Real = (*p_real--) ;

(*p_cmpx--). Imag = 0x0000;


Amit értek belőle, illetve nem értek:

1. ben: két mutatót készítek. Egyik a SigCpmx[0] -ik elemére mutat, és fractcomplex típusú lesz. Másik fractional típusú és SigCpmx[0]. Real elemére mutat.

Miért egyik esetben &sigCmpx[0]. Real, másik esetben &sigCmpx[0] a mutató beállítása?


2. ben. Hasonló a kérdés 1 hez.


3. ban: a mutató zárójelezése mit jelent itt? Hogyan működik a fenti kódrészlet?



#C nyelv #mutató aritmetika
2017. ápr. 10. 23:09
 1/2 anonim ***** válasza:

1. kérdés: precedencia (azaz sorrend). A realnál megkeresi először a sigcmpx tömb 0. tagját, utána a pont miatt annak veszi a real nevű tagját. Ezután képezi az & ennek a tagnak a címét.

2. kérdés: ugyanaz, mint elsőben, előbb elugrik a tömb eleméhez, veszi annak adattagját, és utána képzi a tag címét.

3.: Ha zárójelezed, az azt jelenti, hogy először elmegy a p_cmpx címre (második esetben utána ki is von belőle 1-et...), és csak utána veszi az adattagját.

A hogyan működikre azt tudom mondani, csak enyhe ötleteim vannak, mi lehet ez, talán valami tört együtthatójú komplexekkel dolgozik, de a fene tudja...

2017. ápr. 10. 23:43
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

3-hoz ekvivalens kódrészlet:


p_cmpx->Real = *p_real;

--p_real;

p_cmpx->Imag = 0;

--p_cmpx;


Ez egy ciklusmag része?

Ha igen, mi a ciklusfeltétel?


Talán a blokk alsó felének valós részeit átmásolja a blokk felső felébe, a képzetest meg kinullázza.

2017. ápr. 15. 12:25
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!