指针就是地址
指针变量就是存放地址的变量
char *pa,说明地址pa存放的数据类型是char型的
int *pb,说明地址pb存放的数据类型是int型的
取值运算符和定义指针用的是同一个符号*,属于符号的重用
在不同地方有不同的用法,在定义的时候属于定义一个指针变量,其他地方属于取地址的值
a=3属于直接访问, *&b = 4,属于间接访问
// ConsoleApplication4.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "windows.h"
int main()
{
char a = 'F';
int b = 123;
char *pa = &a;
int *pb = &b;
printf("%c\n", *pa);
printf("%d\n", *pb);
*pa = 'C';
*pb += 1;
printf("now ,a = %c\n", a);
printf("now, b = %d\n", b);
system("pause");
return 0;
}
尽管pa,pb作为指针变量指向的具体数据分别是char和int
但他们作为变量都是整型,即4个字节
首先,你没有给指针变量a赋值
那么就是随机的,而你给它赋值,就会影响到系统的一些关系代码
但一般程序不给这么干
若分配的地址是合法的,就允许这么干。。但还是不好
所以一定要初始化