Monday, July 1, 2013

Formula : Pointers in C

Kali ni saya nak kongsikan 1 formula dalam penggunaan pointer supaya kita lebih memahami operasinya.
Dari kefahaman dan kebiasaan saya menggunakan pointer, secara mudahnya boleh difahami dengan formula ni:   
 pVar = pVar + n*sizeof(pVar//function sizeof() akan memberikan size dalam unit bytes


Jom kita tengok contoh
/*p/s: contoh² bukan source code yang lengkap, sekadar untuk penerangan*/
/*What is the address value that my pointer is pointing to?*/

Contoh 1

UINT32 *p_A; 
p_A = 0x00;

p_A++; 
bersamaan dengan 


p_A = p_A + (1 * 4bytes)
p_A = 0x04;

p_A += 2;
bersamaan dengan

p_A = p_A + (2 * 4bytes);
p_A = 0x08;   
 

 Contoh 2
 

tydef struct{  
   UINT8   varA;  
   UINT16 varB;  
}structDum;


 structDum *p_varC; 

p_varC = 0x00;

p_varC++;
bersamaan dengan 


p_varC = p_varC + (1 * 3bytes)
p_varC = 0x03;


p_A += 3;
bersamaan dengan

p_A = p_A + (3 * 3bytes);
p_A = 0x09;