|
Example: storing references (=addresses) into reference typed variables
#include <stdio.h> int i = 4, *p; // p stores addresses of int typed vars short s = 5, *q; // q stores addresses of short typed vars int main(int argc, char *argv[]) { } |
|
Example: storing references (=addresses) into reference typed variables
#include <stdio.h> int i = 4, *p; // p stores addresses of int typed vars short s = 5, *q; // q stores addresses of short typed vars int main(int argc, char *argv[]) { &i; // this is the address of an int typed var &s; // this is the address of a short typed var } |
|
Example: storing references (=addresses) into reference typed variables
#include <stdio.h> int i = 4, *p; // p stores addresses of int typed vars short s = 5, *q; // q stores addresses of short typed vars int main(int argc, char *argv[]) { p = &i; // stores the address of var i in p q = &s; // stores the address of var s in q } |
|
Example: DEMO
#include <stdio.h> int i = 4, *p; short s = 5, *q; int main(int argc, char *argv[]) { p = &i; q = &s; printf("address of i = %p\n", p); printf("address of s = %p\n", q); } |
DEMO: demo/C/set2/ref-var1a.c
|
|
|
|
|
|
These assignments are illegal (compile warning) due to type conflicts:
int i = 4, *p; // p must store an addr of an int typed var short s = 5, *q; // q must store an addr of an short var int main(int argc, char *argv[]) { p = &s; // Illegal: stores addr of a short type var in p q = &i; // Illegal: stores addr of a int type var in q } |
DEMO: demo/C/set2/ref-var3.c