其一:
在union的所有数据成员中,同一时间只能存储一个数据成员。所有数据成员具有相同的地址,其空间的大小,以最大数据成员为准。
eg:
一、五大内存分区:
内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
1、栈区(stack):FIFO就是那些由编译器在...
数组指针(也称行指针)
定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就...
void关键字的使用规则:
1. 如果函数没有返回值,那么应声明为void类型;
2. 如果函数无参数,那么应声明其参数为void;
3. 如果函数的参数可以是任...
一:
1.什么是内存对齐
假设我们同时声明两个变量:
char a;
short b;
用&(取地址符号)观察变量a,
b的地址的话,我们会发现(以16位CPU...
举例说明volatile:
volatile int i=10;
int j = i;
...
int k = i;
volatile 告诉编译器i是随时可能发生变化的,...
1、sizeof操作符
sizeof(类型说明符,数组名或表达式)
sizeof 变量名
作用:返回一个对象或类型所占的内存字节数
size是尺寸,of是…&...
附程序分布图:
程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函...
莫名其妙的错误。使用Systick做的延时。
初始化是这样的:
//SysTick配置
SysTick_CLKSourceConfig(SysTick_CLKSource_H...
【unsigned】
16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存...
关于结构体的详细分析
只定义结构体
struct Student
{
int age;
char* name;
char sex;//结构体成员
};//(不要忘记分...
字符串(character string)就是一个或多个字符的序列。如:“hello world”,双引号不是字符串的一部分,而是通知编译器,这是一个字符串...
一、程序的内存分配
一个由C/C++编译的程序占用的内存分为以下几个部分:
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,...
为什么我用malloc分配了一个int的空间可以输入3个int?但是如果分配10个int,把3改成11,编译就会出错。为什么呢,我用devc++编译的
#include<s...
和机器字长及编译器有关系:
所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):
1 sizeof(sho...
大内高手—常见内存错误
随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调...
概述
Joel Spolsky认为,对指针的理解是一种aptitude,不是通过训练就可以达到的。虽然如此,我还是想谈一谈这个C/C++语言中最强劲也是最容易出错的要素。
鉴于...
基本术语定义
1.系统栈(system stack)是一个内存区,位于进程地址空间的末端。
2.在将数据压栈时,栈是自顶向下增长的,该内存区用于函数的局部变量提供内存。它也支持...
莫名其妙的错误。使用Systick做的延时。
初始化是这样的:
//SysTick配置
SysTick_CLKSourceConfig(SysTick_CLKSource_H...