> > There are many pitfalls, and a C programmer using pointers must code with > strict discipline in order to avoid them. > > Yes, this is one of the reasons why I Yes, this is one of the reasons why i feel more confident writing assembler (not that I am great at that either) because addressing and indirect addressing is by comparison straight forward in assembler. mov ax,[bx + 100] what could be simpler to understand., get what is at address bx + 100 and place it into ax. mov bx,cx that look like I have just moved the address to some place in memory that is of interest into cx. I know it would be difficult to write lengthy complex code in assembler so its not a good argument and i cant do fun stuff like temp_p = &timer mind you I dont think you need to do that in assembler because you always have the address. but perhaps if in c we could declare a pointer to int like [int] temp_p ; temp_p holds an address that can point to an integer int time; allocate some space and have time point to it. temp_p = [[time]]; get the address to the start of the space allocated above. void tt([int] temp_p) { int t; t = [temp_p] + 5; get what is at address temp_p and add 5 to it. [temp_p] = t; } on second thought that is worse. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist