#include<stdio.h>voidmain(){int a =100,b=10;int*point_a,*point_b;//定义两个指针变量
point_a=&a;//&取地址符。(将a的地址给了指针变量point_a)
point_b =&b;printf("a=%d,b=%d\n",a,b);//直接输出 printf("*point_a=%d,*point_b=%d\n",*point_a,*point_b);//*指针变量所指向的变量(输出数值) printf("point_a=%d,point_b=%d",point_a,point_b);//输出的a和b在内存单元的地址 }
合法性
#include<stdio.h>voidmain(){int a =100,b=10;int*point_a;*point_a=&a;//错误 的printf("*point_a=%d\n",*point_a);}#include<stdio.h>voidmain(){int a =100,b=10;int*point_a;
point_a=&a;//正确 printf("*point_a=%d\n",*point_a);}
#include<stdio.h>voidmain(){int a =100,b=10;int*point_a=&a;//初始化的时候赋值 正确 printf("*point_a=%d\n",*point_a);}
#include<stdio.h>voidmain(){float a =99.9;int*point_a;
point_a=&a;//错误的 类型不一致 printf("*point_a=%d\n",*point_a);}
指针变量的引用
*指针运算符
& 取地址符
#include<stdio.h>voidmain(){int a=9,*p;//定义指针变量p(存放变量的地址)
p =&a;//将a的地址给p*p=5;//将5数值赋值printf("%d",a);//5 }
#include<stdio.h>voidmain(){int a,*p,b,c,d,e;
a=100;
p=&a;
b =*&a;printf("a=%d\n",a);printf("p=%d\n",p);printf("*p=%d\n",*p);printf("*&a=%d\n",b);//先取a的地址&a;然后在*运算,变量a的值
c=(*p)++;printf("(*p)++=%d\n",c);//相当于a++printf("a=%d\n",a);}