为什么很多人觉得C语言只要学会了指针基本上差不多掌握这门语言?

如题所述

第1个回答  2022-06-13
从事嵌入式开发十几年,只要使用的编程语言有三种,C/C++ Java三种,其中C语言使用的时间最长,这门编程语言的最大特别是语法细节简介,但是灵活性非常强,从大的方面看要真正掌握一种编程语言,需要真正的项目实战,只是停留在理论层面上很难认清编程语言背后的本质,记得刚学习C语言阶段,基本上一个多月就把基础语法学习完了,并且做了大量的实习题目,觉得这门编程语言就这么回事了。

于是从学校的图书馆里面借了一本将近1000页的linux内核讲解书籍,开始先从战略上藐视对手,在战术上重视在开始几十页进展的还是比较顺利,始终觉得掌握好了基础的语法,后面的就是变通和灵活运用的问题了,还能变出什么幺蛾子结果,看到后面简直就是在阅读天书了,才知道了自己认识的浅薄,只是掌握点语法皮毛就想着挑大梁这种想法在编程行业显得非常的幼稚,编程行业除了理论之外实战经验显得非常重要。

回到题目中的C语言的核心知识点指针,C语言关键语法点指针,数组,结构体,回调,递归,函数等等,剩下就是这些个概念在项目实战中的应用了,指针对于初学者来讲就是一种双刃剑,如果真的掌握理解了,能在编程中提升非常大的效率,如果没有掌握对于很多初学者来讲就是一种折磨,很多人觉得学不好C语言版本的数据结构,其实很重要的一个障碍就是指针,如果对于指针了解清楚,再去切入数据结构的学习就会显得轻松许多,指针作为C语言里面最重要的语法一点不为过,但是认为掌握了指针C语言就会显得非常肤浅。

任何一种编程语言的背后都是大量的编程模式以及编程的套路,这些只有在真正的项目实战中才能掌握,而且对于一种编程语言越是做的时间长越是觉得自己的肤浅,更加不敢称之为精通,倒是现在很多初生牛犊在简历上写上精通几种编程语言,越是干的时间长越是忌讳提到精通两个字眼,所以讲只是掌握了指针就说掌握一门编程语言的一半显得认识不足,真正掌握编程语言还是靠项目实战,不是所谓几个重点语法这么简单的事情。

学习一种编程语言需要掌握几个重点要素,首先掌握理论基础,世要真正的明白,虽然编程语言是一种实践性的语言,但实践的前提是掌握理论基础,很多人不懂C语言的指针就是因为没有彻底明白指针的含义,只想着快点追赶进度,结果欲速则不达,越是重要的概念越是要彻底掌握明白;第二点就是实战,在掌握理论基础上就是通过项目实战获取经验,纸上谈兵永远也不做不了真正的项目,想尽一切办法去做项目实战,没有别的途径,直面问题的本质,希望能帮到你。

很高兴能回答你的问题

C语言作为编程老祖,很多软件工具脚本都是用C语言或C++来编写的。那么C语言到底学成什么样才算学的比较好?

我上大学一年级的时候,就开始接触C语言了,C语言自认为学的还可以。像数据、变量、循环、判断等都是手到擒来。但学到第8章,也就是学到了指针那一块,就感觉有一点懵了,老师也说指针是比较费脑力的,死记硬背是不可取的,需要理解它的含义。

在学习指针之前,基本都没了解面向对象是什么意思。但学到了指针就懂得面向对象与面向过程的差异。(简单来说,前者就是以对象为基础,设定其属性啊,行为等。后者就是以完成它的过程为主,比如说:计算两个数相加。前者可以设计为小猫计算两个数,也可以是小猫2......,而后者就是计算,而且可以具体到是哪两个数相加。)面向对象对于现在的编程语言还是很重要的。

个人觉得,指针与面向对象密切相关,导致在C语言中指针就变得尤其重要,像我后面学习的Python、java就没有指针一说,但出现了很多类。相对C语言来说,多出了很多很多类。可能是指针被封装起来了吧。

更多精彩,敬请期待!

指针远远不是C语言的全部,

只是在C语言学习道路上相对而言比较难理解的一块。

毕竟从一个高级语言的角度去理解地址,比较抽象。

作为一个高级语言,数据类型,流程控制,函数这些才是高级语言的重点。

说差不多掌握这门语言,应该就是指的指针的难度,和学习的耗时。

也对,也不对,学会指针只是入门了。位运算与文件学会才能写应用。

只要学过嵌入式开发对指针必定是秒懂,无非就是内存寻址。脱离了硬件去学C只能学点皮毛。充其量也只能说会点语法而已。线程进程信号量系统调用各种通讯协议这些才是精华所在。

c语言是结构性(相对面向对象编程语言)高级编程语言。单纯语言本身来讲,语法结构大致类同。c语言的一大特点是对内存操作的灵活性,如果理解了对内存操作和管理的知识点,基本就掌握了这门语言。而指针便是c语言对内存操作的金钥匙。要想掌握c语言,也必须要精通指针相关知识点。

如果不算数据结构、操作系统和算法这些东西。纯粹从语言角度来看,掌握指针技巧,确实可以认为基本掌握语言了。要想更加精进的话,可以考虑学习各个硬件平台了。

比如SIMD在各个CPU平台的实现等。做一些针对性的硬件优化是可以考虑的。多媒体库就做了大量的硬件针对性优化。这个内容也算是核心技术的一部分了。核心技术的另一部分可以认为是算法和操作系统知识的应用。

首先说明的是指针是C语言的一个难点,但是不是全部。就好比不会指针,很多编程技巧无法掌握,同样掌握指针也不见得你能做什么。很多编程技巧需要在实际项目中去体会和学习。等觉得自己像编译器一样思考,自己写的每句代码,都很清楚编译器背后是怎么处理的时候再说自己熟练掌握C语言了。

最后总结来说,掌握指针只是C语言"真正"入门的一个表现。

语言本身掌握不算难,重点是算法,数据结构,编程思想...

我一般自己设计编译器 c指针按我自己的想法来写 怎么的