c语言最难啃的三大骨头

时代坏人 3个月前 已收到3个回答 举报

轻言哑语 3星

共回答了368个问题采纳率:94.3% 评论

内存布局

指针公认最难理解的概念,也是让很多初学者选择放弃的直接原因

指针之所以难理解,因为指针本身就是一个变量,是一个非常特殊的变量,专门存放地址的变量,这个地址需要给申请空间才能装东西,而且因为是个变量可以中间赋

这么一倒腾很多人就开始犯晕了,绕不开弯了。C语言之所以被很多高手所喜欢,就是指针的魅力,中间可以灵活的切换,执行效率超高,这点也是让小白晕菜的地方。

指针是学习绕不过去的知识点,而且学完C语言,下一步紧接着切换到数据结构和算法,指针是切换的重点,指针搞不定下一步进行起来就很难,会让很多人放弃继续学习的勇气。

指针直接对接内存结构,常见的C语言里面的指针乱指,数组越界根本原因就是内存问题。在指针这个点有无穷无尽的发挥空间。很多编程的技巧都在此集结。

指针还涉及如何申请释放内存,如果释放不及时就会出现内存泄露的情况,指针是高效好用,但不彻底搞明白对于有些人来说简直就是噩梦。

函数概念,面向过程对象模块的基本单位,以及对应各种组合,函数指针,指针函数

一个函数就是一个业务逻辑块,是面向过程,单元模块的最小单元,而且在函数的执行过程中,形参,实参如何交换数据,如何将数据传递出去,如何设计一个合理的函数,不单单是解决一个功能,还要看是不是能够复用,避免重复造轮子。

函数指针和指针函数,表面是两个字面意思的互换实际上含义截然不同,指针函数比较好理解,就是返回指针的一个函数,函数指针这个主要用在回调函数,

很多人觉得函数都没还搞明白,回调函数更晕菜了。其实可以通俗的理解指向函数的指针,本身是一个指针变量,只不过在初始化的时候指向了函数,这又回到了指针层面。没搞明白指针再次深入的向前走特别难。

结构体,递归

很多在大学学习C语言的,很多课程都没学完,结构体都没学到,因为从章节的安排来看好像,结构体学习放在教材的后半部分了,弄得很多学生觉得结构体不重要,如果只是应付学校的考试,或者就是为了混个毕业证,的确学的意义不大。

如果想从事编程这个行业,对这个概念还不了解,基本上无法构造数据模型,没有一个业务体是完全使用原生数据类型来完成的,

很多高手在设计数据模型的时候,一般先把头文件中的结构体数据整理出来。然后设计好功能函数的参数,以及名字,然后才真正开始写c源码。

如果从节省空间考虑结构体里面的数据放的顺序不一样在内存中占用的空间也不一样,结构体与结构体之间赋值,结构体存在指针那么赋值要特别注意,需要进行深度的赋值。

C语言最难啃的三块硬骨头

递归一般用于从头到位统计或者罗列一些数据,在使用的时候很多初学者都觉得别扭,怎么还能自己调用自己?而且在使用的时候,一定设置好跳出的条件,不然无休止的进行下去,真就成无线死循环了。

这三大块硬骨头是学习C语言的绊脚石,下功夫拿掉基本上C语言的大动脉就打通了,那么再去学习别的内容就相对比较简单了。

编程学习过程中越是痛苦的时候,学到的东西就会越多,克服过去就会自己的技能,放弃了前面的付出的时间都将清零。越是难学的语言在入门之后,在入门之后越觉得过瘾,而且还容易上瘾。你上瘾了没?

1小时前

11

魔幻儛鈶 2星

共回答了22个问题 评论

1. 指针:C语言中的指针是一个非常重要的概念,也是初学者较为困难的部分。指针需要理解内存的概念,包括内存地址、内存分配、以及指针变量的定义、使用等等。
2. 内存管理:C语言需要开发者自己管理内存,这对于初学者来说可能比较难理解和掌握。所涉及的问题包括:堆栈的概念、动态内存分配、内存泄漏和野指针等等。
3. 文件输入输出:文件输入输出是C语言中非常基础但又比较难掌握的一部分,主要涉及文件的打开、关闭、读写等操作。需要注意文件的读写位置、文件读取格式、文件打开方式等一系列问题。
需要指出的是,学好C语言需要不断练习和实践,多阅读经典教材和练习实例,并结合实际项目经验学习。

21小时前

40

哎不在 4星

共回答了41个问题 评论

C语言是一种相对比较底层的编程语言,在学习的过程中,可能会遇到一些比较难啃的骨头,以下是我个人认为C语言最难啃的三大骨头:

1. 指针:指针是C语言中最重要也最基础的概念之一,但同时也是最困难的部分。指针需要理解多级间接寻址、指针运算、指针和数组之间的关系等概念。

2. 内存管理:在使用C语言进行编程时需要手动进行内存分配和释放,这使得C语言非常灵活和高效,但同时也非常容易出错。内存泄漏和悬空指针等问题可能会导致程序崩溃或者数据损毁。

3. 文件操作:在C语言中,文件操作是必须掌握的技能之一。文件IO方面涉及到文件打开、读写、关闭等相关操作,需要注意文件读写状态的判断和处理。

当然,并不是说这三个方面是所有学习者都会觉得困难或者必定会觉得困难的部分,不同的人有不同的学习习惯和思维方式,在学习C语言过程中可能会遇到其他更具挑战性的难点。

18小时前

37
可能相似的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 service@wdace.com