zoukankan      html  css  js  c++  java
  • c/c++乱语前言

            最近因为项目的原因,一直在linux平台上编写c程序。其实本人接触linux和c的时间并不长,真正算起来的话应该是从今年的2月份开始慢慢自学的。到现在也就2个月而已。在这两个月中,从自己一无所知到熟悉,到拿来写东西,整个过程的相当的艰辛。现在回过头来看看,自己都不清楚当初怎么挺过来的!所以,准备开一个小小的专题,把自己学的一点一滴都记录下来,在权当记录的同时给和我有一样兴趣的人一点点小小的建议。

            本篇文章不写任何关于c的编程方法或者代码,但是是这个2个月来我的一些经验总结。有的时候,这种经验比单纯的编程方法或者寥寥几行代码更有效果。如果你有兴趣学写c,那么你的第一件事情不是什么算法或者数据结构,也不是什么语法或者技巧,而是必须在你的脑子里有一个“从上到下”或者“从左到右”的内存链表。这个链表表示栈内存。如果你的思维可以,那么最好再加上一个“从上到下”或者“从左到右”或者“一陀小山样子”的内存链表,这个链表表示堆内存。然后你的写程序的同时,你脑子的那两根(或者至少必须有栈一根链表)同时也在来回的写数据,读数据,这样你的c语言基本上就八九不离十了。

            一谈到c语言,有点计算机教育背景的人(几乎是所有人)的第一个反应就是:fuck c,fuck pointer,fuck array and pointer。一连3个fuck,完全从个人的角度否认并放弃了c,现实生活中c程序就真的有那么的难写吗?真的就那么难理解吗?开始,我也很忌讳指针,但是慢慢的,你就会发现原来指针那就tmd那么一点事情,也就这么回事。但是指针带来的效率和操作简便性使你对其流连忘返。我现在可以说是被c的指针吸引了,指针设计的精妙相对于指针的使用方法和技巧,这点学习成本实在是太值得了。我原来是使用c#的,自从开始写c,就觉得c是多么的精炼啊,在c#中要表示一个东西,代码无比的拖沓,在c中就一个函数搞定了,那种自由的感觉真的很好。

            谈到c时第二个反应就是:内存泄漏问题。动态分配内存是很简单的,但是分配了你用完了得还回去啊,结果这步老是忘掉,导致了内存泄漏。内存泄漏的解决办法其实也非常简单,而且比较有效,这点我会在接下来的内容中有所体现。

           程序还是会在一定的环境中运行的,而且这个专题基本上都是在linux平台上能编译通过,不保证跨平台。第一是因为本人水平不够,第二:个人觉得写程序还是一个平台一个版本的好,需要跨平台了就把程序拿出去改改吗,这样即快又省事,还有效率,bug也会相对减少,何乐而不为呢?!所以在后续的文章中,有时会多多少少的夹杂着一些linux平台的特点介绍,毕竟我写的程序就是为了让他能在linux平台上走,别的平台我暂时还不管,也没能力管啊!因为个人的c经历有限,而且学习时间也不长,如有错误,不是故意,请提出。个人一定会尽快纠正。

            最后,因为个人的工作原因和懒虫的作怪心理,这系列文章的更新时间不稳定,有的时候可能一个月不更新,有的时候一天更新几篇也是有可能的。各位看官你可以看,但是别催我。

  • 相关阅读:
    Codeforces467C George and Job
    Codeforces205E Little Elephant and Furik and RubikLittle Elephant and Furik and Rubik
    Codeforce205C Little Elephant and Interval
    51nod1829 函数
    51nod1574 排列转换
    nowcoder35B 小AA的数列
    Codeforce893E Counting Arrays
    gym101612 Consonant Fencity
    CodeForces559C Gerald and Giant Chess
    CodeForces456D A Lot of Games
  • 原文地址:https://www.cnblogs.com/Seapeak/p/1721948.html
Copyright © 2011-2022 走看看