首页 > 代码库 > C 基础知识

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)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件


本文出自 “君志所向,一往无前。” 博客,谢绝转载!