C语言系列
来源:互联网 发布:sql insert语句怎么写 编辑:程序博客网 时间:2024/05/21 19:50
边界对齐:在要求边界对齐的机器上,整型值存储的起始位置只能是某些特定的字节,通常是2或4的倍数。
变量的值,就是分配给该变量的内存位置所存储的数值,即使是指针也不例外。
一个常见错误:
int *a;
*a = 12;
声名一指针变量,后面那条语句把12存储在a所指向的内存位置。
此处,我们声名了一指针变量a但未对他初始化,所以无法预计12被存储在什么地方。这个操作是非常危险的 这是 野指针的一种情况。
对指针进行解引用操作可以获得它所指向的值。但NULL指针并未指向任何的东西,因此对NULL进行解引用操作室非法的,所以在对指针进行解引用前,必须保证它并非NULL指针。
*&a = 25;
把值25赋值给变量a。&操作符产生变量a的地址,它是一个指针常量,*操作符访问其操作数所表示的地址。在这个表达式中,操作数是a的地址,所以值25就存储在a中。
*100 = 25;
这条语句是错误的,初一看,觉得是把值25存储在100的位置上,其实不然,因为解引用(间接访问操作只能用于指针型表达式,不能用于整型),如果要吧25存储在位置100,你必须使用强制类型转换将整型转换为指针型。
*(int *)100 = 25;(这个更好 *(int * const)100 = 25;)。
&操作符的结果是个右值,它不能当作左值使用,当表达式&ch进行求值时,它的结果应该存储在计算机的什么地方呢?这个表达式并未标识任何机器内存的特定位置,所以它不是一个合法的左值。
- C语言系列
- C语言系列---内存
- C语言指针系列
- C语言指针系列
- 数据结构C语言实现系列
- C语言系列--内存管理
- C语言系列--内存管理
- C语言系列之-----入门
- C语言笔试系列一
- C语言关键字分析系列
- C语言str函数系列
- C语言str系列库函数
- C语言深入学习系列
- C语言str函数系列
- C语言系列--时间处理
- C语言系列教程完整版
- C语言str函数系列
- C语言str函数系列
- ARM/x86中全局变量(静态与非静态)对比
- 经典的游戏教程网站收录(有好的会继续添加)
- Oracle数据库的热备份与完整恢复测试
- php获取https下的内容_____记录给自已
- 请求各位帅哥美M们下面出了什么问题,小弟怎么都查不到异常
- C语言系列
- 趣味编程:用IDA*算法求解八数码问题
- 请求各位帅哥美M们下面出了什么问题,小弟怎么都查不到异常
- 蓝牙开发中的一些问题
- 设计模式笔记
- 凌晨服务器down机
- 索引优化
- 转】WINCE 6.0 调大image
- Flex优化方案