前言: &:用来访问地址的运算符。如scanf("%d",&i); %p:表示按16进制输出数据,如果输出数据不够8位数,则左边补零。
什么是指针:
“指针”也就是内存地址。
”指针变量“是用来存放内存地址的变量。
就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。
用这两张图来理解指针会非常方便:
一般形式:
type *指针变量名;//星号用来指定一个变量是指针 int *ip; double *dp; float *fp; char *ch;
注意事项:
指针的类型必须与变量的类型一致,整形指针只能存储整型变量的指针地址不可把指针变量当作一个变量来直接赋值给它常量指针变量存储变量的值,指针存储变量的地址
示例:
1 #include2 int main() 3 { 4 char a='0'; 5 int f=123; 6 7 char *pa=&a;//定义指针变量,*pa(指针变量的值为a这个变量的地址的值) 8 int *pb=&f; 9 10 printf("a=%cn",*pa); 11 printf("f=%dn",*pb); 12 13 *pa='C';// 用指针变量改变a的值 14 *pb+=1; 15 16 printf("now,a=%cn",*pa);//输出指针变量控制的变量的数值 17 printf("mow,f=%dn",*pb); 18 19 printf("sizeof pa=%dn",sizeof(pa));//输出指针变量字节数 20 printf("sizeof pb=%dn",sizeof(pb)); 21 22 printf("the addr of a is:%pn",pa);//输出指针变量的地址 23 printf("the addr of a is:%pn",pb); 24 25 return 0; 26 }
题外话:
变量的错误示范:
1 #include2 int main() 3 { 4 int a,c,b=5; E> 5 a=&b;//变量不可用来获取另一变量的地址 6 c=b; W> 7 printf("%p",a); 8 printf("%d",c); 9 10 11 12 return 0; 13 }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)