内存存放数据
如果发送指令,读取f变量的内容,则先找f - >10005这个字节,然后再找到123。
指针和指针变量
通常说的指针就是地址的意思,C中有专门的指针变量存放指针。一个指针占4个字节。
定义指针变量
类型名 *指针变量名
char *pa;// 定义一个指向字符型的指针变量
int *pb; // 定义一个指向整型的指针变量
取地址和取值
如果需要获取某个变量的地址,可以使用取地址运算符 (&):
char *pa = &a;
int *pb = &f;
如果需要访问指针变量指向的数据,可以使用取值运算符 (*)
printf("%c,%d\n",*pa, *pb);
例1
#include <stdio.h>
#include <string.h>
int main()
{
char a='F';
int f=123;
char *pa=&a;//获取变量a的地址 ,存入指针变量pa中
int *pb=&f;//获取变量f的地址 ,存入指针变量pb中
printf("a=%c\n",*pa);
printf("f=%d\n",*pb);
return 0;
}
a=F
f=123
例2
#include <stdio.h>
#include <string.h>
int main()
{
char a='F';
int f=123;
char *pa=&a;//获取变量a的地址 ,存入指针变量pa中
int *pb=&f;//获取变量f的地址 ,存入指针变量pb中
printf("a=%c\n",*pa);
printf("f=%d\n",*pb);
*pa='C';
*pb+=1;
printf("Now a=%c\n",*pa);
printf("Now f=%d\n",*pb);
return 0;
}
a=F
f=123
Now a=C
Now f=124
例3
#include <stdio.h>
#include <string.h>
int main()
{
char a='F';
int f=123;
char *pa=&a;//获取变量a的地址 ,存入指针变量pa中
int *pb=&f;//获取变量f的地址 ,存入指针变量pb中
printf("a=%c\n",*pa);
printf("f=%d\n",*pb);
printf("sizeof 指针pa = %d\n",sizeof(pa));
printf("sizeof 指针pb = %d\n",sizeof(pb));
printf("address of 指针pa = %p\n",pa);
printf("address of 指针pb = %p\n",pb);
return 0;
}
a=F
f=123
sizeof 指针pa = 8
sizeof 指针pb = 8
address of 指针pa = 000000000062FE0F
address of 指针pb = 000000000062FE08