C Pointers


Assignments

y=z :Take the value found at the address associated with z and place it in memory location whose address is assocated with y.


-------------------------------------------

y=&z :Take the address associated with z and place it in memory location whose address is assocated with y.


-------------------------------------------

*y=z :Take the value found at the address associated with z and place it in the memory location found at address assocated with value found in the address associated with y.


#include <stdio.h>
int main(){
    printf("###########################\nint pointers and addresses\n###########################\n");
    int x=5,y=6,z=7;
    int *p;
    printf("the address of p   %p\n", &p);
    printf("the address p is pointing to is  %p\n", p);
    p=&x;
    printf("the address p is pointing to is now %p\n", p);
    printf("the value p is pointing to is now  %i\n", *p);
    x=y;
    printf("the address p is  pointing to is now  %p\n", p);
    printf("the value p is pointing to is now  %i\n", *p);
    p=&y;
    printf("the address p is pointing to is now %p\n", p);
    printf("the value p is pointing to is now  %i\n", *p);
    *p=z;
    printf("the value of y is  now  %i\n", y);
    printf("the value p is pointing to is now  %i\n", *p);

    printf("\n###########################\nchar pointers and addresses\n###########################\n");
    char the_string[]="just a string.";
    printf("the_string address = %p\n", the_string);
    printf("and as the address of &the_string[0] = %p\n", &the_string[0]);
    printf("the_string itself is \"%s\"\n",the_string);
    printf("*the_string points the first character which is  %c\n",*the_string);
    printf("the_string[3] = %c\n", the_string[3]);
    return 0;
}




struct


typedef