C语言指针和内存空间

本文详细介绍了C语言中的指针,包括指针变量的含义、大小、运算及多级指针。同时讲解了数组的定义、初始化赋值、指针数组和多维数组的使用。还探讨了内存分布图中的堆空间,阐述了如何申请和释放内存。此外,提到了结构体的字节对齐原则。
摘要由CSDN通过智能技术生成

C语言指针和内存空间

指针

内存类型的资源地址

指针变量

含义

存放内存类型的资源地址

大小

32位系统中:4个字节

读取大小

修饰符决定

示例
// 定义
int *p = NULL;

修饰符

【修饰指向的空间】(*【修饰当前指针】p【修饰当前指针】)【【数组/函数修饰符】修饰指向的空间】;

const

const *:指向的地址的空间不可写
* conts:固定指针指向的空间地址

const char *p = NULL;           // 指向类型为 const char 空间的指针
char const *p = NULL;

char *const p = NULL;           // 指向类型为 char 空间的 const类型指针
char *p const = NULL;
volatile

防止优化

volatile char *p = NULL;           // 指向类型为 char 空间的指针(取值每次都重新读取)
char volatile *p = NULL;
typedef

重命名指针类型

typedef char * i8p_t;

i8p_t p;

运算

++, --, +, -

p +/- n: 指向的地址 +/- n * sizeof(*p)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值