
C语言
文章平均质量分 74
C语言从基础语法,再到指针 函数 结构体,最后结合数据结构和LInux实现自己的项目,入门c语言。
我有在好好学习
持续挣扎,总有活路可走
展开
-
C语言陷阱:数据扩充 与 按位取反运算符“~”
很显然,如果温度为负数,则向上扩充的16位会全为1,然后或运算之后导致我们的湿度数据被直接拉满。0x 1111 1111 1111 1111 1111 1111 1111 1011 ,远远大于b。正数扩充出来的高位将被填充为0,而负数会被填充为1。可知,~默认按32位操作,会自动做数据扩充,所以即使数据类型一致,也要多加注意,3.操作数混合了有符号数,无符号数,并且有正数有负数,很有可能出问题。1.操作数全为有符号数,即使类型大小不一样,没有问题。2.操作数全为无符号数,即使类型大小不一样,没有问题。原创 2024-11-09 17:21:47 · 396 阅读 · 0 评论 -
Linux+C语言:基于ncurses库的贪吃蛇游戏
运行次数多了有个新问题,终端窗口总是莫名其妙卡bug其中有一种状况会导致终端打字看不见用stty echo,至此,游戏基本完成,可以在添加一些其它小功能,例如穿墙会出现在另一端等等。我这里添加一个得分score来统计分数。main函数里,一个新语句 join 暂停线程,避免线程和主线程输入冲突。全部代码如下gcc Snake.c -lpthread -lcurses即可运行,代码有两百多行一共,比较繁琐还请见谅。原创 2023-05-18 06:13:46 · 1382 阅读 · 0 评论 -
数据结构:链表(C语言)
传统的链表和结构体,malloc分配等都是连续地址,不便于增删。其它如查询,插入等太简单了,思路清晰,就不打了。原创 2023-05-14 16:42:00 · 95 阅读 · 0 评论 -
C语言5:结构体
有点像java里的类的概念,可以用点运算符进行赋值,或者定义时大括号直接赋值定义结构体时要和定义全局变量时一样加上“;”不同于函数另外这里拓展了用字符串数组存汉字的方法:运行结果:YuZhaoQun男222698271719wrx女31476062109形式类似二维数组三 应用:选票系统需求:结构体包括姓名和票数,用户可以输入每个选民的名字来定义结构体,再逐次输入名字进行投票(唱票环节),最后输出当选者及其票数,还有弃票的数量(这里代码就不写了,业务逻辑蛮清晰的)注意:唱票原创 2023-05-05 02:44:35 · 234 阅读 · 0 评论 -
c语言4:字符串
现计算表达式,如果值为假(0),打印一条错误信息并停止运行。//防止悬挂指针(野指针的一种)gets本质上可以无限读取,容易造成内存泄漏。:表示一个指针的内存大小,而不是字符串大小。malloc动态开辟字符串 栈 ==》堆。结尾包含一个字符串结束标志':给前者扩充后者(数字)大小。把后者拼接在前者上,有返回值。可见字符串数组中可以直接用。//释放内存,防止内存泄漏。扩容后地址:cc1410。:只计算有效字符的长度。扩容地址:cc1410。//都初始为‘\0’原创 2023-05-04 17:24:09 · 289 阅读 · 0 评论 -
C语言3:指针
程序编译没问题,运行就崩溃,毫无提示,一般是野指针原创 2023-04-26 02:39:22 · 456 阅读 · 0 评论 -
C语言2:函数
可见方法和主函数中x值虽然相等但是不相同,是不同的内存地址,但是如果传入数组,就是相同的,并且可以两边同时修改。注:形参中不存在数组的概念,即使定义了数组大小也不行,数组名只会传入一个地址,数组首地址,8个字节表示一个地址。原创 2023-04-24 15:45:22 · 195 阅读 · 0 评论 -
C语言1:快速回顾
原ide用的,但是在个别函数的使用如使用时只能用特定的兼容的的特殊写法,不太喜欢,暂时换成了后来将ide换成了,配合cmd指令使用,新建文件再使用时发现打印中文为乱码,解决方案如下,新建文件编码改为ANSI码。原创 2023-02-28 02:00:52 · 163 阅读 · 0 评论