C语言指针理解


前言

一直以来,对指针也只是有个模糊的理解,记录一下让你我更清晰


一、数据类型

数据类型的本质作用:合理的利用内存空间来存储数据

	char ch;
    printf("sizeof(char)=%d\n",sizeof(ch));//char占一个字节
    int num;
    printf("sizeof(int)=%d\n",sizeof(int));//int占四个字节

内存管理
将内存抽象为一个很大的一维字符数组,对内存的每一个字节分配一个32位或64位的编号(与处理器相关),这个编号就是内存地址

二、指针变量

用来存放内存地址的变量

	int num=100;
    printf("sizeof(int)=%d\n",sizeof(int));//四个字节
    printf("%p\n",&num);
    int *p;//定义的时候*说明p是指针变量而不是普通变量
    p=#
    printf("num=%d\n",num);//100
    printf("*p=%d\n",*p);//100

指针变量自身的类型:将变量名去掉
指向的类型:将变量名和离它最近的*去掉,作用是可以决定指针变量所取内存空间的宽度,决定了指针变量+1跳过的单位跨度

//指针变量的跨度
	printf("&num=%u\n",&num);
    printf("p=%u\n",p);
    printf("p+1=%u\n",p+1);
	//Linux/Windows系统倒序存放数据
	int num = 0x01020304;
    int *p = #
    printf("*p = %#x\n",*p);//%#x是带格式输出, 效果为在输出前加0x
    short *p1 = #//两个字节
    printf("*p1 = %#x\n",*p1);
    char *p2 = #
    printf("*p2 = %#x\n",*p2);

运行结果在这里插入图片描述


总结

因大部分数据结构的书目都用C语言讲解,所以来给自己充充电
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值