指针定义与使用
指针
指针的定义和使用:
1、指针:是一种数据类型 指针变量也是一种变量 int* p int*是数据类型 p是指针变量
2、指针格式: 对应的数据类型* p(指针类型变量 用来指向一个变量的地址)
3、通过指针修改变量的值
*p = 200;
4、指针类型在内存中的大小 : 在32位操作系统中所有指针大小都是4个字节大小,在64位操作系统中所有指针大小都是8个字节大小
打印指针内存大小格式: sizeof(int *) || sizeof(p)
5、内存按照 unsignned int 为每个一个内存分配编号
6、讲解:
①定义变量 int a =10; 数值10 存在内存 为a开辟的空间中 a的地址为0xff00
②定义指针 int * p = &a 指针变量p 在内存中存贮的是 a的地址 0xff00,指针变量p 在内存中的大小在32位系统中都是4个字节大小
③*p = 200 通过操作指针变量p 所存储的 a的地址 来改变a的值
④指针p 有一个自己的内存地址 指针p地址 与 定义变量a的地址 0xff00不同
int* p(指针类型变量 用来指向一个变量的地址)
两个打印结果一样
int main()
{
int a = 10;
a = 20;
int b = 100;
//int* p(指针类型变量 用来指向一个变量的地址)
int* p = &a;
p = &b;
printf("%p\n", &b);
printf("%X\n", p);
}
通过指针修改变量的值
两个打印结果均为200
int main()
{
int a = 10;
a = 20;
int b = 100;
int* p = &a;
p = &b;
//通过指针修改变量的值
*p = 200;
printf("%d\n", b);
printf("%d\n", *p);
}
打印指针内存大小格式
int main()
{
int a = 10;
a = 20;
int b = 100;
int* p = &a;
p = &b;
*p = 200;
//sizeof()指针类型在内存中的大小,在正常32位操作系统是4个字节大小,64位是8个字节大小
printf("%d\n", sizeof(p));
printf("int* p= %d\n", sizeof(int*));
printf("char* p= %d\n", sizeof(int*));
printf("short* p= %d\n", sizeof(int*));
printf("long* p= %d\n", sizeof(int*));
printf("float* p= %d\n", sizeof(int*));
printf("double* p= %d\n", sizeof(int*));
}
END