指针
定义:用一个变量存放另一个变量的地址,指针即地址
char *p;
char:p指向的地址的数据的类型
char *:指针类型
p:指针(即地址)
指针大小
sizeof§ 固定为4字节
void 空类型
1. 指针转空类型指针类型无需强制类型转换
int a = 10;
int *b = &a;
void *p =b;
2. 空类型指针类型转为具体类型需强制类型转换
3. 空类型指针没有类型,无法确定数据类型,无法使用p++等自增
指针NULL与0相等
char *p;
printf("%d\n", p);
p = NULL;
printf("%d\n", p);
char a=100;
p = &a;
printf("%d\n", p);
printf("%d\n", *p);
printf("%d\n", sizeof(p));
指针自增
1. *p++ 相当于:取值*p,指针再自增p++
2. ++*p 相当于:取值*p,取到的值再自增,指针p没有改变
不同指针类型的地址
指针p[i]时的偏移量=isizeof(类型)
p[i]此时的地址是:p地址+isizeof(类型)
指定地址
int *p = (int *)0x1111;
二级指针
指向指针的指针
int a = 100;
int *b = &a;
int **c = &b;
printf("%d %d\n", **c, *b);