博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言基础知识汇集
阅读量:4294 次
发布时间:2019-05-27

本文共 544 字,大约阅读时间需要 1 分钟。

指针

1.指针的大小:指针的大小和操作系统寻址范围相关(当然编译器也是对应版本),32位操作系统的指针就是32位
2.指针的内容:指针记录的是申请内存的首地址
3.指针的加减运算:每次加减指针指向的数据类型的大小,如32位整型数指针每次加4,8位字符型指针每次加1。

结构体

1.结构体在内存中是连续的
2.(gcc中)结构体的大小并不是所有的元素的大小之和,而是将数据进行了调整,使其成为最长元素的整数倍,如struct s { char a; int b; } 的大小是8;struct s { int a; double b;} 的大小为16; struct s { char a;char b;char c;char d;int i;} 的大小是8;
其调整的策略是:
 1. 如果定义了#pragma pack(n),那么编译器会使用指定的n字节对齐
 2. 偏移量是成员自身大小的整数倍;
 3. 结构体大小是所有成员的整数倍;结构体大小等于最后一个成员的偏移量加最后一个结构体的大小。(结构体里的结构体要将自身拆开)

联合体

1.联合体的大小取决于联合体中占内存最大的元素
2.联合体中所有元素的起始地址都是联合体的起始地址
3.对联合体赋值会覆盖之前的内容,联合体中元素共用内存

转载地址:http://jtuws.baihongyu.com/

你可能感兴趣的文章
linux安装docker
查看>>
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>
Lambda 表达式
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>