C语言学习日志
文章平均质量分 92
仅记录个人学习过程,便于复习查阅
Willing_hope
我要一往无前~
展开
-
【动态内存管理、文件操作、程序环境和预处理】
一、动态内存管理1、为什么存在动态内存管理?因为常规的内存分配只能分配固定大小的空间,比如数组和变量的定义,只会分配固定大小的空间。而有时候需要的空间在运行时才能确定。2、常见动态内存函数(1)malloc和freemalloc: void* malloc(size_t size);成功返回指向开辟好空间的指针,否则返回NULL指针。(返回的指针需要进行强转为所需类型)free: void free(void* ptr);释放动态内存(2)callocvoid * calloc(si原创 2020-08-25 16:01:55 · 159 阅读 · 0 评论 -
【整型和浮点型在内存中的存储、大小端、指针传参、strlen和sizeof区别、结构体对齐】
一、数据存储整型和浮点型在内存中是如何存储的?(1)整形整形在内存中是以补码的形式存储的,因为以补码形式存储保证了0的唯一性、使加减运算可以统一处理(因为cpu只有加法器,补码形式存储可以将减法用加法代替,提高运算效率)(2)浮点型浮点型在内存中的存储遵循IEEE-754格式标准,由符号位、指数和有效数字三个部分组成。对于32位的浮点数最高位为符号位、接着8位指数位、剩下的是32位有效数字;而对于64位的浮点数,同样最高位是符号位,接着是11位指数位,最后是52位有效数字位。不过对于原创 2020-08-25 11:18:39 · 471 阅读 · 0 评论 -
【strcpy函数】
strcpy函数的使用strcpy()函数是C语言中的一个复制字符串的库函数。char * strcpy(char *dst,const char *src) { if((dst==NULL)||(src==NULL))return NULL;char *ret = dst; //[1]while ((*dst++=*src++)!='\0'); //[2]return ret;//[3] }一、const 修饰:源字符串参数用const修饰,防止修改源字符串;二、原创 2020-07-31 19:48:56 · 772 阅读 · 0 评论 -
【指针传参问题C】
改变变量用一级指针,改变指针用二级指针1)改变值void fun(int *p){ int b = 100; p = &b; // 将p指向b,改变的是局部变量的值,实参不受影响}void fun2(int *p){ *p = 100; // 将p指向的变量赋值100,改变的是实参指针指向的值,实参会受到影响 //} //改变变量用一级指针,改变指针用二级指针,main(){ int .原创 2020-07-22 11:33:39 · 183 阅读 · 0 评论