1、简单的指针
数据类型 * 指针变量名;
如:
int *p ; // 定义了一个指针变量p
2、指针的运算符
&
(取地址)
*
(取值)
&:获取一个变量的地址
* :在定义一个指针变量时,起到标识作用,意思是定义了一个指针变量。除此以外,获取这个指针指向的地址内容。
例1
#include <stdio.h>
int main()
{
//定义一个普通变量
int b =10;
//定义一个指针变量
int *p;
//给指针变量赋值
//将b的地址保存在p中
p = &b; //p保存了b的首地址
//普通变量
printf("b = %d\n",b);
printf("b=%p\n",&b);
//指针变量
printf("*p=%d\n",*p); //*p 表示获取指向该地址里面的值,即 10
printf("p=%p\n",p); //p是首地址了,无需再&p
return 0;
}
运行结果
b = 10 b= 0x7ffcc45a8418 *p= 10 p= 0x7ffcc45a8418
扩展:如果在一行中定义多个指针变量,
每一个指针变量前面都需要加 * 来修饰
。
int *p , *q ; //定义了两个整形的指针变量p和q
int *p , q; // 定义了一个整形指针变量p ,和整形的变量q(只是整形
不是整形指针
)
3、指针的大小
在32位系统下,所有类型的指针都是4个字节。
在64位系统下,所有类型的指针都是8个字节。
#include <stdio.h>
//系统为64位
int main()
{
char *a ;
short *b ;
int *c ;
long *d ;
float *e ;
double *f ;
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(b) = %d\n",sizeof(b));
printf("sizeof(c) = %d\n",sizeof(c));
printf("sizeof(d) = %d\n",sizeof(d));
printf("sizeof(e) = %d\n",sizeof(e));
printf("sizeof(f) = %d\n",sizeof(f));
return 0;
}
运行结果
sizeof(a) = 8 sizeof(b) = 8 sizeof(c) = 8 sizeof(d) = 8 sizeof(e) = 8 sizeof(f) = 8
版权声明:本文为weixin_47783699原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。