I have just recently started to learn C. I have been playing around with different code to teach myself. I cannot figure out the following code:
Code:#include <stdio.h> void testfunction (int *); void testfunction2 (int *); int main (void) { int number = 5, other_number = 5; testfunction (&number); printf("\nnumber in main: %d\n\n", number); testfunction2 (&other_number); printf("\nother_number in main: %d\n\n", other_number); return(0); } void testfunction (int *value) { *value++; printf("\nnumber in testfunction: %d\n", *value); return; } void testfunction2 (int *value) { *value += 1; printf("\nother_number in testfunction2: %d\n", *value); return; }
For some reason when I run the above program I get this:
Shouldn't both numbers pointers be 6?Code:number in testfunction: -1077941616 number in main: 5 other_number in testfunction2: 6 other_number in main: 6
Why am I getting this crazy number? Can I not use "++" outside of a loop? "+=" seems to work just fine.
Thanks for the help!!



LinkBack URL
About LinkBacks


