![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
码农u号
INVERTER,UPS,UCOS,LINUX
展开
-
C基础之CONST
C语言的基础知识是最重要的,即使内核的一些东西都是各个基础知识的综合运用。有些程序不理解其实就是对基础概念理解不透彻,或者说比较含糊。下面说说对CONST的基本理解。 const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。const不是意味着“常量”,可以理解为“只读”。其值不可修改。不是说它的值永远都不能改,是原创 2017-04-08 15:16:17 · 380 阅读 · 0 评论 -
C语言基础之:32位机中用printf输出signed char的问题
在32位机中定义signed char a = 0xe0 ; 执行printf(“%d\n”,a);后a的数值是多少呢? 先分析: 在计算机内部是如何解读0xe0这个数据的呢? 如果当做是无符号数,那在内存的表示就是其原码,如下: 0xe0 = 1110 0000 = 128*1 + 64*1 + 32*1 + 16*0 + 8*0 + 4*0 + 2*0 + 1*0 = 224 (原创 2017-11-24 11:34:03 · 4418 阅读 · 0 评论 -
《 C Primer Plus (第六版)中文版 》 书中的一处勘误
出错的地方: 第17章高级数据表示 17.2.1 使用链表 17.2 films2.c程序 第574页 下面是程序清单,红色框内的代码是出错的地方。 作者的本意是想把current指向链表的开头结点,head指向下个结点,然后free当前结点,并判断是否是最后一个结点,不是的话就循环,保存下个结点的head的值再赋给curent ,head指向下一个结点,再free当前结点。原创 2017-12-20 10:00:08 · 4559 阅读 · 9 评论 -
C语言动态申请三维数组的三种方法
方法一:用数组指针形式申请一个三维数组。 #include <stdio.h> #include <stdlib.h> int main() { int i,j,k; int value = 1; //申请一个3*3*3的整型数组 int (*a)[3][3] = (int(*)[3][3])malloc(sizeof原创 2017-11-29 11:02:20 · 19542 阅读 · 3 评论 -
C进阶之:内存对齐
什么是内存对齐? 内存对齐可以用一句话来概括: “数据项只能存储在地址是数据项大小的整数倍的内存位置上”。例如int类型占用4个字节,地址只能在0,4,8等位置上。 不同类型的数据在内存中按照一定的规则排列,而不一定是顺序的一个接一个的排列,这就是所谓的内存对齐。如下Test1和Test2所占的内存空间是不同的。struct Test1{ char c1; short s;原创 2017-08-21 11:23:48 · 494 阅读 · 0 评论 -
编写C 代码,计算一个字节中被置 1 的位的个数(4种解法)
前三种为移位解法,第四种为通过与来实现;第一种和第二种类似,只是写法不同而已。 方法一:移位#include <stdio.h>int main(){ char num = 0; int count = 0; int i,x; printf("please input the number:"); scanf("%d",&num); x = nu原创 2017-08-12 16:03:56 · 3506 阅读 · 0 评论 -
C进阶之 柔性数组的创建,遍历,删除
#include <stdio.h>#include <malloc.h>typedef struct{ int len; int array[];}SoftArray;SoftArray* create_soft_array(int size){ SoftArray* ret; if(0 != size) { ret = (Soft原创 2017-06-22 22:22:31 · 372 阅读 · 0 评论 -
C语言进阶之const和static的比较分析
温馨提示:观看本文之前务必先弄懂什么是栈区,堆区,动态区,静态区,只读区,代码段。 关于const很重要的一句话是:const修饰的变量不是真的常量,它只是告诉编译器该变量不能出现在赋值符号的左边,也即不能通过const修饰的变量去修改变量的值。 static关键字指明变量的”静态”属性,同时具有”作用域限定符”的意义。从字面的意思直译static是静态的意思,但是不好记忆和理解,所以你可以这样原创 2017-05-19 22:36:51 · 661 阅读 · 0 评论 -
C语言进阶之类型转换
end原创 2017-05-08 16:39:39 · 602 阅读 · 0 评论 -
C语言进阶之二级指针的应用:重置内存空间大小
二级指针的应用:重置动态空间的大小原创 2017-05-18 11:04:31 · 577 阅读 · 0 评论 -
C进阶之递归应用
// 用递归的方法求字符串长度 #include <stdio.h> int strlen(const char* s) { if('\0' == *s) return 0; else return 1+strlen(s + 1); } int main() { const char arr[] = "softer school";原创 2017-05-26 11:32:20 · 341 阅读 · 0 评论 -
C语言进阶之N种方法实现两个数的交换
要求编写程序实现两个数a和b值的交换。你会用什么方法实现呢?考验你C语言水平的时候到了。下面几种方法都能实现,第四点方法才是最高效的。原创 2017-05-12 17:06:21 · 463 阅读 · 0 评论 -
工程代码之:float型data转换为字符串的函数
/*************************************************************************功能: 把float 型的data 转换到字符串str_ptr 里, 小数保留d 位 d=0, 去尾例如: data=12.3456 , 小数位数d=3 -> "12.345"*********************...原创 2019-09-18 20:41:56 · 825 阅读 · 0 评论