——当时学的时候觉得挺难的,但是现在觉得也还是可以,不是很难。
一. 觉得难的原因
1. 我觉得c语言语法功能不够强大
我现在在学python语言,c语言是我大一的一门课,当时学的时候不觉得,现在学了python之后,我才真的发现c语言的语法功能实在是不强大。
用python的时候根本就不用指定变量的类型,而且python处理数据特别方便,字符串是可以切片的,但是在c语言里就不行,非常麻烦。其他还有很多方面,我也基本把c语言忘完了,所以我也记不得了,但是当时这个语法功能给我整得头痛是真的。
2. c语言语法复杂
c语言的语法是真的不好掌握,我当时学的时候老师让我们编程,哎呀真的好麻烦,所有变量都要提前定义,还要指定类型,处理的时候循环结构一大堆括号,脑袋都要绕昏,还有什么指针、数组之类的东西,总之就是学起来头痛,因为那个语法实在是太复杂了,经常不知道为什么错了,找半天也不知道怎么回事。想算个东西呢,又要写一大堆,当时考试份也超级低,到现在学了python终于上手了,才觉得当时也不是我的问题,就是学不懂c语言。
二. 学习c语言的方法
不过,虽然当时学得我怀疑人生,但是我还是在这每天的头痛中找到了一些我学不好c语言的原因,总结了一些方法,大概归结为以下几项:
多看书,勤练习
学习编程,最基本的操作就是看书,因为书上有基本的一些理论知识和语法,看了书之后才能明白一门语言需要哪些基本要素。而掌握基础语法之后,就要多练习,锻炼编程思维,这样才能越来越上手。
根据自己学习c语言的目的适当跨越一些内容
我是金融专业的,学习python完全是为了处理数据,所以我就不会过于纠结基础编程中那些数学问题,因为其实编程难就难在数学问题嘛,在处理数据的时候反而用不到什么数学问题,只要语法对了,再用功能强大的库,就可以实现对金融数据的处理。c语言也是一样的,你要搞清楚自己为什么学习c语言,如果你的目标对数学问题要求不高,那其实没必要一直在基础上浪费时间,掌握了基本语法就可以直接向你的最终目标迈进了。
多跟大佬请教
编程最重要的还是要不断学习,现在网上也有很多编程大佬会发免费的教程和一些他们自己编的程序,在自己平时遇到问题的时候都可以有针对性地去看看,吸取一些经验,这样你对编程能力才能完成大进步。
以上就是我的全部想法啦,希望对题主有帮助!
c学起来也不是很难,主要是指针和其他的知识点入数组、函数等组合起来难理解一些要想学习,主要有几点需要注意
一、记忆部分
1、保留字,如if,int,for等
2、常规的结构,如条件,循环,switch、数组的结构,指针定义,结构体的定义等
3、语法的构成,如printf,scanf等一些语句的构成
4、一些系统带的函数,常用的要记住,如strlen,printf等
5、一些经典的算法,如素数的计算,排序的写法等
二、算法,语法等
这个就是解决问题的方法,没有好的捷径,只要慢慢的积累,数学方面的算法要加深
其实,c基础也就是那么一些基础点
1、保留字
2、定义变量等,int,float等
3、条件语句if,选择语句switch,循环,do--while、for、while、goto
4、注意逗号语句,scanf和printf要熟练,知道格式(这个很基础,用错了很麻烦)
5、数组,这里注意二维数组和字符串的一些函数
6、指针,这个是难点,也就是说很难理解,特别是和数组函数结构体等结合使用的时候
7、结构体共用体,这个不难,就是繁琐而已。这里涉及到链表,其实不难理解,可以想象成一串珠子,next指针就是串珠子的线,结构体就是珠子
8、文件操作,这个就是套用格式,没难度
9、宏定义,这个没难度,就是最简单的直接替换。注意一点就是在定义宏的时候多用几个括号增加优先级没坏处
10、函数。这个难度不大,主要是要理解,参数是在调用的时候另外开辟内存空间。除了数组和用&定义的参数。要不然子函数改变了参数变量,调用它的地方的变量时不会改变的
其实就是这些基本的知识点
c语言最难在它缺乏逻辑性--形式逻辑不成立。例如:
char
str[]="abcdef"
//声明
str
是字符串,初始化成
"abcdef"。
可是,一样是赋值,写在语句里:
str[]="abcdef"
或
str="abcef"
却都是错的。而要调用函数:
strcpy(str,"abcdef")
才行。
例如:
int
a=4
int
*b=&a
//
声明
b
是指针,让它指向a。
printf("%d",
*b)
//
打印
b
的值。
如果语句里写:
*b=&a;//
却
是错的,你瞧,外形同声明里一样,却
是错的。
语句里要写:
b=&a
//
你瞧,b
前面没*号
才正确。
你要是写:
b=a
//
对不起,又错了。
例如,声明了:
int
a
int
*b
语句里
可以
有
a,
可以
有
&a,
可以
有
b,
却不可以
有
&b
形式。
语句里
可以
有
b,
可以
有
*b,
可以
有
a,
却不可以
有
*a
形式。
所谓C语言指针难,难在
形式逻辑不成立。
而我们经验中的
数学,却是
逻辑性很强,形式逻辑成立。
初学者,最难理解就是
“形式逻辑不成立”这点。