自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 C语言学习-Day24-一维数组

创建数组的时候不能把长度设为n。但是上面这段代码是可以在C99语法里合理的。数组是一组相同类型的元素集合。const_n是一个常量表达式,指定数组的大小。数组的使用:操作符[]。type_t指的是数组的元素类型。以上为数组的基本创建形式。

2024-03-31 14:58:48 452 1

原创 C语言学习-Day23-函数递归2

下面用递归的方法写,完全可以参考上面那个练习里的方法写,如果判断大于1就return一个本身乘以减一的函数。一直return到最后参数减为1判断进入else,return1。这种可以实现,但是我创建了临时变量count!那么不创建这个count的方法怎么做?接上一天,练习2:编写函数不允许创建临时变量,求字符串的长度。循环的方法可以做出,迭代。模拟实现strlen。模拟实现strlen。

2024-03-30 13:03:50 413

原创 C语言学习-day22-函数递归1

每一个函数调用都需要在栈区分配一块空间,比如调用main函数,分配一块给main函数,这块空间较main函数栈帧空间。当函数递归时候,每一次test都要调用空间,比如test1000,test999每一个调用的时候上一个函数都没有结束所以上一次函数的空间还没有清除,如果递归太深,会导致内存的栈区被用光,产生上述的情况栈溢出。见print函数里,我们需要依次执行1234%10 123%10 12%10 1%10并且依次打印。做个练习:接收一个整型值(无符号),按照顺序打印它的每一位。递归-函数自己调用自己。

2024-03-24 21:40:40 416

原创 C语言学习-day21-函数嵌套调用和链式访问

吧strlen函数用作printf的参数,因为他本身就是返回一个整型,我直接打印%d就行了。嵌套调用:函数是不可以嵌套定义的!不可以把一个函数定义到另一个函数内部。但是函数可以嵌套调用。举例,我可以先用strlen函数求出len,在用printf函数打印len。链式访问:把一个函数的返回值作为另一个函数的参数。

2024-03-14 09:08:50 364

原创 C语言学习-day20-函数的调用

解释:也就是我在函数中再设立一个循环,用变量j去遍历我的n,j循环从2到n-1一直除n如果有一个结果n%j==0,则返回0,n不为素数,如果没有,循环执行结束继续往下执行return 1,n为素数。然后根据上述,is_Prime应该是一个可以判断数是否是素数的函数,是就return 1.这里我看别人写的更简单一点而且可以被400整除的也是闰年,我的条件不够正确,修改一下!即使是100的倍数,但是只要是400的倍数,也是闰年,所以函数应该这么修改!判断n是否是素数,用2到n-1的所有数试出他。

2024-03-12 09:00:00 1625 1

原创 C语言学习-day19-函数2

成功了,也就是说我通过指针的方法,将swap(&a,&b)中的a,b指向函数swap外部的a与b的存储空间之中,使函数执行的操作为*pa和*pb的互换,这样就交换了函数外部变量的存储空间值。这是因为a,b的空间和x,y的空间是独立空间,函数内的空间交换以后函数外的空间没有影响!函数中的参数也有分类,在函数调用的时候,swap(&a,&b)中的&a就属于实际参数。函数创建的时候写的swap(int a,intb)这个int a就是形式参数。自定义函数一样,需要函数名,返回值类型,函数参数。

2024-03-11 19:51:50 362

原创 C语言学习-day18-函数1

一定要先引用头文件,这个函数不是自带的,使用的话必须引用一下。函数是一个大型程序中某部分代码,由一个或者多个语句快组成,负责完成某项特定恩物,相较于其他代码具备独立性。库函数:对于大量频繁使用的函数比如printf,直接调用一个库,然后可以不用编译函数直接使用库中函数。简单的说就是:把source的字符复制然后放到destination里去。IO函数输入输出函数:printf、scanf、getchar、putchar。内存操作函数:memcpy、memcmp、memset。数学函数:sqrt、pow。

2024-03-10 16:12:51 823 1

原创 C语言学习-day17-dowhile循环

和continue在这一语句中作用类似while。就不演示了,后面重点是要把B站的练习部分做了。

2024-03-07 19:35:18 393 1

原创 C语言学习-day16for循环

循环里嵌套了一个循环,这种就是3*3等于9,所以会打印9个hehe。原因是第一次i循环时,已经将j的值变成了3,第二次i循环进入循环内容j还是3没有重新给于0,所以会直接判断失败退出循环,所以只能打印3*1个hehe。这是因为continue只会跳过本次循环后面的语句,printf被跳过了,然后去执行了i++,这个没有跳过。当i循环到5的时候i==5成真执行break直接跳出整个循环,所以代码运行结果为1234.注意:循环内部不要改变循环变量!循环就是下面这三个框循环执行。

2024-03-06 20:55:39 312 1

原创 C语言学习-day15-while循环语句2

缓冲区还剩一个\n,然后执行getchar,理论getchar应该等待我们输入YorN,但是因为缓冲区存在内容,所以直接拿取\n放入ch。原因解释:我输入123 abc后,缓冲区是123 abc\n,scanf一次拿走空格前的内容123,然后getchar拿走abc,所以还剩下\n。我们想要一个执行输入密码然后弹出确认密码,根据我们输入YorN来反馈确认成功或者确认失败。好久没更了,我没弃,只是去了趟国外,而且还得了肠胃炎,躺了一周多。所以,要想修改这一代码,需要将缓冲区的\n清除。

2024-03-05 21:11:46 839

原创 C语言学习-Day14-while循环语句1

这个就是while的使用。意思就是当while后面为真,执行while内操作然后再回去判断while条件是否执行while。,我们在printf前加入continue则会跳过后面的打印以及i++部分导致程序死循环。答案是会输出1234但是代码未结束陷入死循环。这是因为在while循环中,答案:通过getchar和putchar实现输入什么就得到什么的代码。首先写个输出1-10的代码。

2024-02-21 21:26:26 357 1

原创 C语言学习-Day13分支循环语句2

解释以上语句,首先赋值day输入一个值赋给day,然后通过switch语句,输入几进入case几,然后打印以后通过break退出执行后面的代码。那么不会显示,所以为了完善语法,最好加入default默认的输出,不属于上面任何case的都会进入default。注意,if条件的时候应该写num==1这种,如果写成num=1,那么会直接判断为真进入这一if语句后面的内容。但是代码1的书写方法容易造成歧义。下面写一个输入1234567分别输出星期一到星期日的代码。问题:代码1和代码2一样吗?判断一个数是否为奇数。

2024-02-20 21:42:25 759 1

原创 C语言学习记录-day12-分支和循环语句

原因是else和离他最近的一个if匹配,所以else和if匹配后,第一个if(a==1)不成立后直接结束。如果第一个if为真才会执行后面那个if、else。然后是elseif,我这么写想表达60不属于young,但是打印还是出了young,所以18<age<26这种写法不对,因为检测到18<age为真的时候就会执行打印。代码风格也是一种很重要的东西,如果else if else写到一行,你写出来以后再看都看不懂,看的很难受,所以一定要代码风格搞好增加可读性。如果else后面带有两个语句则,

2024-02-17 13:16:48 755 1

原创 C语言学习-day11

今天做题,我没找到比特鹏哥这个原题啊,就跟着视频课做一下吧。写一个函数求两个整数的较大值,比如输入10,20,输出20。好长时间没更,没有放弃哈,只不过去过个年啦。下面那个不是C语言内置数据类型?下面输出的结果是:()局部变量所在局部范围。程序有问题,不能编译。

2024-02-16 22:32:01 356 1

原创 C语言学习-day10

这样也可以打印出来同样结果。对于我这种非底层软件工作者来说不需要使用,只是以后看到能懂即可。结构体是的C语言有能力描述复杂类型。比如描述一个学生包含:名字+年龄+性别+学号。还有第三种方式,也可以打印出来,见下图。运用上一天的指针还可以得到另一种方法。C语言提供结构体Struct。结构体的创建和初始化。结构体变量.成员变量。结构体的创建和初始化。结构体变量.成员变量。结构体的创建和初始化。结构体变量.成员变量。

2024-02-06 19:07:45 342 1

原创 C语言学习-day9

如图我定义a=10,然后查a存储的地址,在000000AF1D0FF744,存储值为0a,然后是 00 00 00,a代表10,000000AF1D0FF745储存的是00,46也是0047也是00,所以再往下一行就是000000AF1D0FF748,存储了3b,然后3个字节都是00,这是16进制位的数,再往下是000000AF1D0FF74C(c是12的意思)。而SOC这种0到100,精度为小数的,才有1000种可能,才会占据10个bit,2的10次方即可。32位机,指针有32个bit,也就是4。

2024-02-03 22:50:07 809 1

原创 C语言学习-day8

常见关键字:auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while。故,static修饰全局变量,使这个变量只能在自己所在的源文件内部使用,其他源文件不可使用。

2024-02-01 18:12:30 1387 1

原创 C语言学习-day7

这里9除以2并非4.5,首先打印后面的%d是打印一个整数,这里得换成%f,然后int a是把a设定为了整数,这里得换成float,注意,到这也没有结束,9/2这个公式会被默认为整数除法得到的也是除法,所以把分子分母中任意一个数换成浮点数就可以变成浮点数除法,代码如下。得到结果如下,也可推算,0的二进制位为00000000000000000000000000000000(32个0),取反为11111111111111111111111111111111.这是-1的补码,所以0做~后得到-1.

2024-01-30 18:44:32 1771 1

原创 C语言学习-day6

比如说你收到了一个数据包,这个作为汽车从业者经常会收到,你想要查看BMS发送的报文,你可能得到一个1s一次的EXCEL数据(真实频率远大于这个),这个数据采集了5min,那么就是300行的数据,每一行都有一个全量信号的各种值(比如我有300个信号),你要在这上千的数据里找到自己想要的故障时刻信息,靠人力是非常困难的。,10个数字,我需要访问数组中某一个值的时候通过下标0到9来访问,比如我想要访问数组中第3个元素我就打arr[2]。:比如我想要一个这种逻辑,输入两个数求和,我可以写。

2024-01-27 21:33:19 863

原创 C语言学习-day5

然后是转义字符,这块有点类似python的转义字符。今天开始老师教了下GIT的使用方法,可以上传自己代码分享也可以白嫖别人的代码,很好用。码表:A-65 B-66,a-97,b-98.给所有的字符编译了一个数字用来对应一个十进制的值来存储。让未来的自己或者别人可以看懂自己写的代码,增加代码的可读性。接下来学下选择语句,这块好像所有语言都一样IF ELSE,我感觉人类最简单的逻辑。进入整体,转义字符就是转变了原本的意思的字符,比如\n表示换行而非\+n的组合。得到如下,输入1或者0得到两种输出结果。

2024-01-26 14:56:59 330 1

原创 C语言学习记录-day4

感觉这前面这部分和我以前学过的python很像,想起来刚入职我领导就让我自学python然后去做个筛查数据的程序,我当时那个绝望,不过最后居然搞了几个月搞出来个从EXCEL筛选电流差值在多少范围内的所有数据的小程序,真的是功夫不负苦心人,哪怕非计算机专业,只要愿意学就可以学会。此时调试代码我的是ctrl+fn+f10,然后选择调试-窗口-监视,可以看到如下。字符串就是一串字符-用双引号括起的就是字符串,如下。字符数组----一组相同类型的元素。字符数组----一组相同类型的元素。

2024-01-25 21:43:04 351

原创 C语言学习记录-day3

局部变量的生命周期:进入局部范围生命开始,出局部范围结束。-具有常属性的变量,本质还是变量。字面常量:比如1,2,3,a,b,c,3.14。变量的生命周期:变量的创建和销毁之间的时间段。因为a仅在大括号里使用,这里是它的作用域。局部变量的作用域:变量所在的局部范围。全局变量的生命周期:程序的生命周期。比如num=10是个变量,如下图。今天先从作用域和生命周期开学,全局变量的作用域:整个工程。如果num加const,则。稍作修改运行则失败且弹出。

2024-01-22 16:09:17 323

原创 C语言学习记录-day2

执行后得到如下结果,打印的是局部变量,因为当局部变量和全局变量名字冲突时,局部优先,所以不建议把全局变量和局部变量名字写成一样。题外话:今天额尔古纳零下35度他们非要去什么白桦林,我就在酒店继续学习好了。不然scanf在VS不让用,如果不想每次加这行代码,在这个文件里加入这句话。变量的名字(不推荐)(可以直接int age,但是不推荐)类型1可以说 变量的名字=0(推荐)int age=20。-选一门语言深入学习即可(我也没有时间再去学别的)全局变量-{}外部定义。局部变量-{}内部定义。

2024-01-20 14:15:17 321

原创 汽车人的C语言学习记录-day1

但是本人在观察公司模型时,发现上传到应用层的各个接口信号,其实是由底层提供,当开发中遇到了UDS开发等底层问题时,完全看不懂底层的代码。虽然对于一个系统工程师来说最多就是看看模型,不会亲自去敲C代码,但是这方面知识的匮乏让我在跟他人尤其是供应商们的辩论中吃到了亏,尤其是当底软工程师没有按我要求开发却还在嘴硬但是我又说不出他的代码哪里不对时。写代码******************************************************************************

2024-01-19 21:28:58 334

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除