A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 寂静的夜 中级黑马   /  2015-7-1 23:09  /  1050 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

字符串输入输出函数
输入函数
scanf()    格式化输入输出 ,输出中不能有空格
  gets()      非格式化输出,输出中间可以有空格, 回车键结束输入. 注意,不安全的哦亲,char a[5]; 在用gets(a);函数输入的时候我们即使输入了6个字符,         系                统也不会报错的.
fgets()     安全的输入函数,如我们的输入字符数超过了字符数组规定的数量, 那么fgets()函数会自动帮我砍掉多出来的部分并且会在最后默认加\0,
                 如果我们的输入比字符数组规定的数量少两个以上,  那么fgets()会自动在末尾加上\n(自动换行) \0,    如果只是少一个的话  不会产生\n 但\0还           是会有的 .   使用格式:    fgets(ch, sizeof(ch), stdin);

输入字符函数
printf()        格式化输出   不能自动换行
puts()          不格式化输出      可以自动换行
fputs()        不能自动换行   格式 fputs(ch, stdout);


const   修饰符,  可以把一个变量,变常量
const 在 * 号左边     值不能变,   指向可以变
const 在 * 号 右边    值能变,  指向不能变
const 在 * 号 左右两边    值不能变 ,指向也不能变


c语言中的内存管理
内存的5大区域
1,栈区      局部变量和临时变量
2,堆区   程序执行中,动态分配的内存
3,BSS   未被初始化的全局变量和静态变量
4,数据段(常量区)  已经被初始化的全局变量和静态数据
5,代码区     源码代码程序编译产生的二进制数据

动态内存管理,申请内存空间
malloc      使用要加头文件  #include <stdlib.h>    void*malloc(申请的数量)   int *p =  int *malloc(100)   *p 存在栈区, malloc 存在 堆区.
                 malloc 不会初始化 申请的空间
                 menset (p, '0', 100)  将所有申请的空间初始化为 0.loin
calloc       int *p = (int *) calloc(5,4);        // 申请5个长度为4的空间.        calloc  可以把申请的空间初始化为0;


realloc     重新改变一个空间的大小   p =( int *)   realloc ( p , size);

free        free( p )  释放指定空间 p是我们新申请的内存空间   free后   p 是一个野指针.不释放的话会照成内存泄露.


指针函数    返回值是指针的函数   叫做指针函数  int (*p1)(int a,int b);  或者  int (*p1)(int ,int)


结构体
结构体  就是若干个相同或者不同类型的数据组成的新类型



5 个回复

倒序浏览
沙睿 来自手机 中级黑马 2015-7-1 23:16:05
沙发
总结的很好。很细致
回复 使用道具 举报
总结的不错哦,有没有结构体的使用的
回复 使用道具 举报
总结的不错!!
回复 使用道具 举报
3期的?课程
回复 使用道具 举报
加油好好学
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马