C
binjiajia
这个作者很懒,什么都没留下…
展开
-
字符数组与字符指针变量(转)
1.字符指针可以指向一个字符串。 我们可以用字符串常量对字符指针进行初始化。例如,有说明语句: char *str = "This is a string."; 是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。 这里要注意字符指针与字符数组之间的区别。例如,有说明语句: char string[ ]="This is a string.";转载 2017-03-10 09:51:48 · 611 阅读 · 0 评论 -
C内存分配详解
在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。 第1节主要介绍内存管理基本概念,重点介绍C程序中内存的分配,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。 第2节主要介绍C语言中内存分配及释放函数、函数的功能,以及如何调用这些函数申请转载 2017-03-31 09:26:09 · 279 阅读 · 0 评论 -
C读写字符串函数的停止条件
C语言中的格式控制读入函数scanf(终端读入)和fscanf(文件读入)函数都是以非空白字符开始,以第一个空白字符(空格、换行等)结束,并且系统自动在末尾加上字符串结束标记'\0'; 格式控制输出函数 printf(输出到终端)和fprintf(输出到文件)函数输出时直到遇到'\0'停止输出,并且'\0'不输出; puts函数和fputs函数输出时直到遇到'\0'停止原创 2017-04-12 17:08:01 · 2279 阅读 · 0 评论 -
局部数组变量生命期结束的那些事
局部数组变量的内存是在函数栈中分配的,函数栈是一级一级的,每进入一个嵌套函数就在栈内存的低地址处为新函数开辟一个栈帧,函数返回后取消这个栈帧,栈帧指示寄存器ESP重新指回当前函数的栈帧,这样刚才那个栈帧中的内存是不应使用的,但是其中的数据还在,通过指针依然可以使用。但是当程序再进入一个嵌套函数时,就会继续在刚才取消栈帧的内存处开辟新栈帧并存储数据,这样就会把原有的数据覆盖。所以读取退出的函数栈中的转载 2017-07-09 16:39:53 · 507 阅读 · 0 评论