标签:c 基础 语法
《turboc 2.0实用大全》 机械工业出版社
为什么需要动态分配数组:主要是为了弥补传统数组的4个缺陷
a)数组的长度必须事先制定,不只能是整数,不能是变量
b)传统形式定义的数组,该数组的内存程序无法手动释放
c)长度一旦定义,其长度就不能在更改
d)A函数定义的数组,在A函数运行期间可以被其他函数使用,但A函数运行完毕后,A函数中的数组将无法被其他函数使用
int main(void)
{
int i = 5; // 分配了4个字节 静态分配
int *p = (int *) malloc(4);
p = &i;
printf("%d",*p);
/*
1.要使用malloc 函数,必须添加malloc.h头函数
2.malloc 函数只有一个形参,int 型
3.“4”表示请求系统给我分配4个字节
4.malloc 只能返回第一个字节的地址
5. P本身所占的内存是静态分配的,P指向的是动态的。
*/
free(p); //表示把P所指向的内存释放掉
}
如果你使用的是位的编译器,编译后的是 个字节。 如果使用的是 位的编译器,编译后的应该是 字节
cpu决定内存的编址,如32位CPU有32条地址总线,所以需要4个字节来表示。 算术 > 关系 > 逻辑 > 赋值 编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 : C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件
本文出自 “君志所向,一往无前。” 博客,谢绝转载!
标签:c 基础 语法
原文地址:http://meilisong.blog.51cto.com/2180138/1429440