int a = 1; int b = 2; printf("%p\n", &a);//%p 用于打印指针的16进制地址
printf("%d\n", sizeof(&a));//输出4 指针占用4个字节
//指针的类型:去掉变量名,剩下的就是指针的类型 例如:int* char*
//指针指向的类型://去掉变量名和*,剩下的就是所指向的类型(就是指针要操作的数据类型)
指针变量就是用于存放指针的变量, 存什么就叫什么变量 例如常见的 整数变量,小数变量,char变量
int* p; char* pc; double* pd; //以上 p pc pd 就是指针变量
&用于取变量的地址
*指针变量:取值运算
#include <stdio.h> int main(){ int a = 100; int* p = &a; printf("%d\n", *p);//*p 取指针的值,也叫解引用 printf("%d\n", *&a);//取a的地址是一个指针 再用*指针 取里面的值 //以上两行均输出100 getchar(); return 0; }
偏移运算:
p+n或者p-n , p++,p--
实际内存的偏移位置为 p+sizeof(指向的数据类型)