- 博客(23)
- 收藏
- 关注
原创 C语言进阶(1)-深度剖析数据在内存中的存储
但是在C语言中除了8 bit的char之外,还有16 bit的short型,32 bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。如果所给的数值不在我的数据类型的数据范围之内,比如c中,-1并不在unsigned char的数据范围之内,这是可以先将他的补码求出,再利用截断思想。小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。
2024-05-17 01:09:47 384
原创 初阶C语言(8) - 实用的调试技巧
bug 是计算机领域专业术语,是计算机在硬件、软件、协议和系统安全策略上存在的缺陷,攻击者能够在未授权情况下访问的危害,世界最早的一批程序设计师之一,美国的葛丽丝·霍波在调试设备时出现故障,拆开继电器后发现有只飞蛾被夹扁在触点中间,因此霍波诙谐的把程序故障统称为BUG,后来成为计算机领域的专业行话,bug狭义的概念是指软件程序漏洞或缺陷;
2024-05-10 08:00:00 1046
原创 C语言初阶(7) - 结构体
有了结构体类型,那如何定义变量,其实很简单。inty;p1;//声明类型的同时定义变量p1structPoint p2;//定义结构体变量p2//初始化:定义变量的同时赋初值。structPoint p3xystructStu//类型声明charname15//名字intage;//年龄structStu s"zhangsan"20//初始化structNodeint。
2024-05-08 01:30:03 821
转载 单片机笔记
【主要用于】:主程序运行过程时,突然发生突发事件,而突发事件也用到工作寄存器,这时,突发事件就可以用另外的工作寄存器(和主程序用的工作寄存器不同),这就能防止主程序在寄存器中的数据被修改,当突发事件被处理后,主程序又能按照原来的轨迹运行。SP的值在复位后可以被改写(防止占用那四组寄存器的位置),使用move操作,改变之后,从它的值进行堆栈。程序存储器中的0000H地址是系统程序的启动地址(复位之后,PC的指针被赋值为0000,我们必须把我们编写的程序的第一条指令放在0000的地址上)。
2024-05-08 00:26:23 214
原创 C语言初阶(6) - 指针
指针变量,用来存放地址的变量。(存放在指针中的值都被当成地址处理)。那这里的问题是:一个小的单元到底是多大?1个字节)如何编址?经过仔细的计算和权衡我们发现一个字节给一个对应的地址是比较合适的。对于32位的机器,假设有32根地址线,那么假设每根地址线在寻址的时候产生高电平(高电压)和低电平(低电压)就是(1或者0);那么32根地址线产生的地址就会是:.......这里就有2的32次方个地址。每个地址标识一个字节,那我们就可以给4G的空闲进行编址。同样的方法,那64。
2024-05-06 00:32:08 887
原创 C语言初阶(5) -- 操作符详解
逻辑反操作- 负值+ 正值& 取地址sizeof 操作数的类型长度(以字节为单位)~ 对一个数的二进制按位取反-- 前置、后置--++ 前置、后置++* 间接访问操作符(解引用操作符)
2024-05-02 00:18:51 933
原创 C语言初阶(4) -- 数组
C语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的,所以程序员写代码时,最好自己做越界的检查。数组在创建的时候如果想不指定数组的确定的大小就得初始化。仔细观察输出的结果,我们知道,随着数组下标的增长,元素的地址,也在有规律的递增。数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。当数组传参的时候,实际上只是把数组的首元素的地址传递过去了。两种情况之外,所有的数组名都表示数组首元素的地址。,就是数组越界访问了,超出了数组合法空间的访问。
2024-02-07 02:13:48 578
原创 C语言初阶(3) -- 函数
自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。函数的组成:ret_typefun_namepara1statement;//语句项ret_type返回类型fun_name函数名para1函数参数举一个栗子:写一个函数可以找出两个整数中的最大值。
2024-01-14 19:26:44 914
原创 008 统计二进制中1的个数~C语言
思路:写一个函数count_number_of_1,用要求的数按位与1,如果等于1则计数器加一,之后m右移去掉最后一位,直到m为0结束;思路:写一个函数count_number_of_1,用传的参数m%2 是否等于1,等于1则计数器加一,之后m除以2,一直到m为0结束;思路:这里有一个技巧,用m&(m-1)这个表达式会把m的二进制序列中最右边的1去掉。第一种方法:主要针对正数,不能求负数的二进制1的个数。第二种方法:此方法可以针对负数的二进制1的个数。第三种方法:最简便的方法。
2024-01-10 01:03:13 351
原创 笔记1 sizeof和strlen区别 ~ C语言
1) C语言中的sizeof() 是用来计算变量或者使用类型创建的变量大小,单位字节,不管内存中存放了什么,计算的是占用空间的大小,而strlen()计算的是空间中字符的个数(不包括'\0');3) sizeof() 计算的是类型所占空间的字节数,sizeof(数组名), 以数组名做参数时,计算的是整个数组的大小,而strlen(数组名)计算的是'\0'前面的字符个数;14 的二进制位 & ((~(1<<2)) 等于 10。注:sizeof()是操作时,strlen()是库函数;,是无符号数(易错);
2024-01-03 01:05:42 361
原创 006 判断100-200之间的素数~~C语言
如果有一个整数m,他的开平方跟之前(包括开平方根本身)一定至少有一个能整除这个数的因数,因为m=a*b, a和b至少有一个数字是小于等于开平方m的,比如:25 = 5*5;可以利用一个小技巧,当flag = 1时,代表为素数,当flag = 0时,n代表不是素数。例如:1,2,3都不是素数。但如果一个素数,它的开平方根之前没有整除这个数的因数,那么这个就是用平方根判断是否为素数的依据。分析思路:输入一个数n, 让n除以2,n除以3.... n除以n-1若出现整除,则不是素数。优点:可以化代码,减少次数。
2023-12-31 19:16:37 448
原创 C语言初阶(2) -- 初识分支语句和循环语句
学习C语言,贵在坚持。C语言是一门结构化的语言,有顺序结构,分支结构,循环结构。1.什么是语句?C语句可分为以下五类:1. 表达式语句2. 函数调用语句3. 控制语句4. 复合语句5. 空语句本文简要了解控制语句。
2023-12-30 23:36:56 869
原创 005 二分查找的应用 ~~C语言
b: key < arr[mid], 则key可能在arr[mid]的左半侧,继续到左半侧进行二分查找。c: key > arr[mid], 则key可能在arr[mid]的右半侧,继续到右半侧进行二分查找。如果找到返回下标,否则继续,直到区间中没有元素时,说明key不在集合中,打印找不到。4. 更改left和right的边界时,不确定是否要+1和-1。2. 检测中间位置的数据是否与要查找的数据key相等。1. right的右半侧区间取值,该值决定了后序的写法。a: 相等,找到,打印下标,跳出循环。
2023-12-30 00:03:32 346
原创 004九九乘法口诀表,十个数的最大值,求和~~C语言
2. 使用max标记数组中的最大值,采用循环的方式依次获取数组中的每个元素,与max进行比较,如果arr[i]大于max,更新max标记的最大值,数组遍历结束后,max中保存的即为数组中的最大值。2. 设置一个循环从1~100,给出表达式中的每一项:1.0/i, 注意此处不能使用1,否则结果全部为0。3.计算1/1-1/2+1/3-1/4+1/5 ……+ 1/99 - 1/100 的值,打印出结果。内部循环控制每行打印多少个表达式以及表达式内容,//打印每一行内容,每行有i个表达式。
2023-12-29 01:10:05 343
原创 003求两个数的最大公约数和最小公倍数~~C语言
第一次:a = 18 b = 24 c = a%b = 18%24 = 18。第二次:a = 24 b = 18 c = a%b = 24%18 = 6。第三次:a = 18 b = 6 c=a%b = 18%6 = 0。先用辗转相除法求出最大公约数,然后 (a*b/最大公约数)= 最小公倍数。先求最大公约数, 最小公倍数=(a*b/最大公约数)。循环中:a = 18 b = 6。循环中:a = 24 b=18。
2023-12-29 00:53:55 349
原创 002编写一个函数将参数字符串中的字符反向排列~~C语言
编写一个函数 reverse_string(char* string)(递归实现)实现:将参数字符串中的字符反向排列,不是逆序打印
2023-12-27 22:40:14 443
原创 001输出1000年~2000年之间的闰年~~C语言
第二种思路:想要判断当前年份是否为闰年,year需要满足条件。第三种思路:想要判断当前年份是否为闰年,year需要满足条件。以上就是判断闰年的几种解题思路,请各位多多指正。(1)year可以被4整除并且不能被100整除。,则1000<=year<=2000;:输出1000~2000之间的。(2)year可以被400整除。,只有年份year一个变量;2.不能被100整除。2.不能被100整除。2.不能被100整除。
2023-07-18 19:33:49 462 2
原创 初级—编程练习题(牛客网)
学生信息管理系统是学校教学管理的重要工具,现有一名学生基本信息如下:姓名-Jack,年龄-18,性别-Man,请按照输出样例的格式输出该学生的信息。请计算表达式“(-8+22)×a-10+c÷2”,其中,a = 40,c = 212。第二次循环:a=2 b=11 c=1 a+b+c=14。第二次循环:a=2 b=13 c=1 a+b+c=16。第二次循环:a=2 b=7 c=1 a+b+c=10。第二次循环:a=2 b=9 c=1 a+b+c=12。第一次循环:a=2 b=5 c=1 a+b+c=8。
2023-07-18 16:40:04 89
原创 C语言初阶(1) -- 初识C语言
学习C语言,先了解C语言的起源,从简单的代码开始练习。先了解C语言的基础知识,对C语言有个大概认识。每次学习都要划重点。本节介绍C语言的数据类型、变量常量、字符串、选择语句、循环语句、函数、数组、常见关键字等。原文链接:https://blog.csdn.net/weixin_62604754/article/details/1275919401. 学习C语言的历史C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器。
2023-07-12 23:06:22 349 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人