指针

计算机位数基本知识: 32位:32根地址线/数据线 正电(0)和负电(1) 32个二进制作为可能性一共2^32种 比如: 00000000000000000000000000000001=1 所对应的是为1的地址 每个小区域(小分区)为1字节

查看变量地址

用%p输出&a的地址 具体代码: #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>

int main(){ int a = 10; printf("%d\n", a); printf("%p\n", &a); //输出a的地址 010FFA38 所得为16进制地址 return 0; } int *p = &a;//p用来存放地址 p,p为指针变量(指针)即地址存到p中 printf("%p\n", &a); printf("%p\n", p); 两个打印结果相同 *:解引用操作符: *p = 20;//即为把20赋给a 具体代码: #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>

int main(){ int a = 10; int *p = &a; printf("%d\n", a);//10 *p = 20; //a=20 printf("%d\n", a);//20 printf("%d\n", *p);//20 return 0; } 注意: 什么类型的变量与地址类型是对应的 int a; int *p=&a; char ch; char *p=&ch;

指针变量的大小

在32位中每个指针变量都是32个bit即4个字节 所以: int a = 10; int *p = &a; printf("%d\n", sizeof(p)); //输出为4且无论是int char......都是4 64位指针大小就是8个字节