C语言学习心得(六)
指针
计算机位数基本知识:
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个字节
更多相关文章
- IP地址与子网的作用和组成
- IP地址简介与配置
- MAC地址表和ARP表分别是什么?
- 只要两步,用Python将地址标记在地图上!
- 从零到一学懂区块链(3):地址
- 对比 C++ 和 Python,谈谈指针与引用
- 一文多图带你看看如何用「对撞指针」思想巧解数组题目
- 20张图!3个视频!一文带你搞定「快慢指针」在数组中的应用
- 短小精悍,双指针对撞,求解「两数之和 II」