指针
2015年6月21日
17:53
什么是地址:说白了地址就是一个数字用来标示内存的,也就是用来给内存编号的
#include<stdio.h>
int main()
{
int*p;
inta[4]={1,4,23,5};
p=&a[0];
printf("%d,%d",*p,*(p+1));
}
在这个例子中
&为地址运算符,当后跟一个变量名时,&给出该变量的地址
Int *P;
p=&a[0];
则说明
p为指针变量,被赋予a[0]的地址
*为间接运算符
当后跟一个指针名或地址时,*给出存储在被指向地址中的数值
所以,*p则给出a[0]的数值,*(p+1)则给出a[1]的数值
#include<stdio.h>
int main()
{
char*p;
inta=97;
p=&a;
printf("%c",*p);
}
在这个例子中,p是指向一个字符变量的指针
当a的地址赋予p时
*p给出存储在被指向地址(即为a的地址)中的数据…………
97
char *p;说明p为指向字符的指针
不过因为p指向的是字符变量
因此
编译器将a地址中的数据当作字符来识别,即ASCII码,当输出为字符时,97='a'
Inta=97,*p;
p=&a;
解释:内存中为a和p开辟两个空间,并为其分配好地址,
当p=&a时,p空间中存储的是a的地址