内存存放数据
如果发送指令,读取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