• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C语言学习难点在哪里,为什么都说是指针?

鹏70949 2019-11-12 浏览量:723
C语言学习难点在哪里,为什么都说是指针?做上层应用学习java,python的都说C语言比较难!!!
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 理解透彻指针需要对微机内存结构和工作原理非常清楚,否则只能学会个语法,记住几种书写格式。
    举个简单的例子,如果你拿到一段固件,接口地址是0x08000004,参数为一个指针,一个整数,返回一个字符。
    你可以这样去调用它:
    ((char(*)(char * int))(0x08000004))("argv"4);
    当然了,还有很多其他的写法,指针非常灵活灵活就容易出错,并且难以发觉。
    比如:
    ((char(*)(char * int)) fun;
    fun = (char(*)(char * int))(0x08000004);
    fun("argv"4);
    这只是冰山一角,还有修饰词,数组指针,指针数组,多维指针等等,要理解透彻,要花很大功夫。
    • 发布于 2019-11-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 虽然指针本身是一个很简单的概念,但因为指针指向处的数据实质是可以有很多种类的,这是C语言灵活性的突出表现,但也因为这样的灵活带来了很大的不可预知、不可控性,还不好判断。

    比如一个 预想 指针对应地址 应该存储回调函数入口地址,实际却是一个无效地址,这不好判断,如果按函数入口去处理,就会出错。

    所以处理指针要十分谨慎,防止各种出错可能(C语言自身语法特性上没有相应的处理,也没有好的工具进行协助,完全靠人工好的编程习惯来保障,这就是难点)

    • 发布于2019-11-13
    • 举报
    • 评论 0
    • 0
    • 0

  • C语言属于比较底层的语言,难点应该是结构体和指针结合起来用,可以去看看linux的内核源码,里面有大量指针操作
    • 发布于2019-11-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 指针确实是比较难的。是由于指针的逻辑比较复杂,是直接操作地址的,可读性比较差。

    C还是低层的语言,很多逻辑都是单步实现的

    • 发布于2019-11-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C语言学习难点在哪里,为什么都说是指针?