例子一:
#include<stdio.h> int main() { int i=10; int * p=&i; //p是个变量名字,int * 表示该p变量只能存储int类型变量的地址。 //int *p=&i;等价于 int *p; p=&i; //p存放了i的地址,p指向i,*p就是i变量本身 printf("%d ",p);// 1245052 printf("%d ",*p); // 10 return 0; }
例子二:
#include<stdio.h> void f(int i) { i=100; } int main() { int i=9; f(i); printf("i=%d ",i);//i=9 return 0; }
例子三:
#include<stdio.h> void f(int *p) { /* void f(int *p) 不是定义了一个名字叫做*p的形参, 而是定义了一个名字叫做p的形参, 它的类型为int * , 只能存储int类型变量的地址*/ *p=100;//*p和变量i都指向的同一个内存地址。 } int main() { int i=9; f(&i); printf("i=%d ",i);//i=100 return 0; }