指针变量(C语言)

1.首先要明白,变量储存常量,(变量之所以叫变量就是因为其中储存的常量是可以变化得),如:

int a; a=10;

其中a为变量,10为常量,a储存了10

而指针变量,也储存常量(即其它变量的地址,也叫作指针)

2.为将指针变量和普通变量区分,加了‘ * ’,例如:

char* p;
p=&a;

其中,
①char为指针变量的基地址,此处a变量类型只能是char
②星号只是类型的一部分,p才是变量名。因此,a的地址&a是赋给p而不是p
③一般写char
,将星号紧紧接在char后面
④或者也可以写为 char* p=&a;
⑤多个变量
如果 char*p1,p2; 则只定义了p1为指针变量,p2为普通的char变量
而当 char *p1,*p2; 则p1、p2都为指针变量
同时赋值也行 char *p1=&a,*p2=&b;
⑥可以用“钥匙”——‘ * ’,来提取指针变量所指向变量的值

a=233;
printf("%c",*p);
printf("%d",p);

输出结果为

233
6487623

⑦支持指针变量进行加减运算
两指针变量相减的结果为 两个指针所指向的元素的地址的偏移距离

printf(“%d\n”,p);
printf("%d\n",++p);
printf("%d\n",p+1);

输出结果为

6487623
6487624
6487625

“+1”是a下一个元素的地址,故跨越了1Byte;
如果为int a;int*p=&a; 则输出结果会变为会为

6487620
6487624
6487628

因为此时a的下一个元素的地址,跨越了int型的4Byte

猜你喜欢

转载自blog.csdn.net/qq_45832958/article/details/104779537