首页
学习
活动
专区
圈层
工具
发布

半年也没学会C语言,编程真的需要天赋么?

最近在知乎上看到了一个很有趣的问题,题目叫做:编程学习真的需要天赋吗? 提问题的题主说自己花了半年的时间硬啃C primer plus,结果看到链表的时候就再也看不下去了。...在我高中刚毕业的时候,我也曾经试着自学过C语言。和题主不同的是,由于高中的时候参加信息竞赛,所以我当时是有编程基础的,也会一门语言。但即使如此,一整个暑假,我愣是没有把C语言啃下来。...结果上了大学之后,听了几节C语言课了解了一下语法,然后又去机房练习了一下,C语言就写得有模有样了。当时还帮一个其他学校的同学写了个图书管理系统。...这个时候再看书其实是一种查漏补缺的作用,完整看一遍下来之后,会学到很多高级的技巧,以及夯实我们的理解。 看完书之后,我们可以再进一步找一些高难度的内容来实操。...精通远远比会的多重要,但精通一门技术无论是谁都是需要长久的打磨和锻炼的,对于聪明人来说也一样不是一件容易的事。再说耐心和思维缜密,这两点其实都是可以训练的,都属于可以训练的技能。

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    你真的会 C 语言吗

    身为一名程序员,或多或少都会了解一点 C 语言,我现在还清楚地记得,大一刚接触 C 语言时被它所支配的恐惧。...C 语言无比强大,被称为「高级汇编语言」足以见得它的威力,也可以看出它经常与计算机底层打交道;它的指针部分更为精彩(也是最难的部分),那么我们就跳过它最难的部分,检查一下你对 C 语言掌握的程度。...在 C 语言中,无符号整数是 4 个字节,1 个字节为 8 位,十进制数 0 用二进制表示为 0000 0000 0000 0000 0000 0000 0000 0000,计算机做减法是通过补码进行,...语言将计算结果按照无符号整数解释,得到的十进制数字为 4294967295(2^32 - 1)而不是我们想要的 -1,循环时 i 初值被赋为 0 ,一直小于这个数,所以循环会不断地进行,代码将试图访问数组...C 语言确实很强大,但是如果我们的计算机基础知识不扎实,很可能出现各种奇奇怪怪的 bug。原来我一直觉得学那些枯燥无味的计算机基础知识没用,但是越往前走越发觉计算机基础知识很重要。

    1.5K20

    c语言编程用什么软件-学习c语言需要什么软件_c语言编程软件有哪些

    C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。   ...二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。...目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程...学习c语言需要什么软件   (1) TC 2.0DOS平台软件。最经典的C语言编译器,系统体积小,简单易学,容易上手,而且很多前人或书籍的程序均基于该编译器,是学习C语言的首选。...目前有的教材已经选用该编译器,不过需要一个较长的调整期,因为很多源代码需要过渡过来才行,虽然性能上比TC2.0有所提高,但对于初学者没有质的变化,选择时需要注意。   (2)VC++ 6.平台。

    12.6K11

    【Linux笔记】Linux下编译C语言程序

    在上一篇笔记中有分享Linux下的vi/vim编辑器的使用方法(【Linux笔记】Vi/Vim编辑器),现在我们就可以使用vi/vim编辑器编写C代码了。那么写完代码该怎么进行编译呢?...关于在Windows命令行下编译C程序的方法可查看往期笔记:【C语言笔记】windows命令行下编译C程序、【C语言笔记】使用notepad++、MinGW来开发C程序。...首先,使用命令gcc -v查看当前的Linux发行版是否有安装gcc编译器(PS:本文使用的Linux发行版是红帽6): ? 使用vi/vim编辑器写代码并保存为hello.c: ?...在Linux下进行C语言编程的学习可能会增加学习的成本,但是从长远来看仍然是有必要的。...若不想安装Linux系统,也想适应一下Linux环境,则可参考往期笔记:【C语言笔记】Windows下体验Linux环境。

    16K10

    Linux C编程之一:Linux下c语言的开发环境

    今天开始根据Linux C编程相关视频的学习所做的笔记,希望能一直坚持下去。。。...1、开发环境的构成 编辑器:VI; 编译器:选择GNU C/C++编译器gcc; 调试器:应用广泛的gdb; 函数库:glibc ; 系统头文件:glibc_header; 2、在安装Linux时需要注意事项...) 是GNU推出的多平台编译器,以下是gcc支持编译的一些源文件的后缀及其解释 .c后缀 c语言源代码文件 .h后缀 是程序所包含的头文件 .o后缀 是编译后的目标文件 例:gcc -o hello...假如用户在安装过程中少装了这些包,就无法编译c源程序,这时候可以通过rpm包来迅速安装Linux的C开发语言环境的。...7、Linux下C程序开发过程: (1)使用vi工具编辑写源程序; (2)保存为*.c; (3)使用gcc编译成二进制可执行文件; (4).

    10.4K40

    Linux C编程之一:Linux下c语言的开发环境

    ---恢复内容开始--- 今天开始根据Linux C编程相关视频的学习所做的笔记,希望能一直坚持下去。。。...; 2、在安装Linux时需要注意事项   在安装时选上“程序开发”中的“开发工具”,就可以自动安装gcc/gdb;   若想开发图形界面,还需要选上GNOME/KDE软件开发。...(GNU CCompiler)   是GNU推出的多平台编译器,以下是gcc支持编译的一些源文件的后缀及其解释     .c后缀 c语言源代码文件     .h后缀 是程序所包含的头文件     ...假如用户在安装过程中少装了这些包,就无法编译c源程序,这时候可以通过rpm包来迅速安装Linux的C开发语言环境的。...7、Linux下C程序开发过程:   (1)使用vi工具编辑写源程序;   (2)保存为*.c;   (3)使用gcc编译成二进制可执行文件;   (4).

    13.3K01

    Linux【模拟实现C语言文件流】

    ---- 前言 在 C语言 的文件流中,存在一个 FILE 结构体类型,其中包含了文件的诸多读写信息以及重要的文件描述符 fd,在此类型之上,诞生了 C语言 文件相关操作,如 fopen、fclose、...fwrite 等,这些函数本质上都是对系统调用的封装,因此我们可以根据系统调用和缓冲区相关知识,模拟实现出一个简单的 C语言 文件流 本文重点 : 模拟实现 FILE 及 C语言 文件操作相关函数 注意...,比如如果内存中的数据还没有刷新就断电的话,会导致数据丢失;除了通过特定方式进行缓冲区冲刷外,还可以手动刷新缓冲区,在 C语言 中,手动刷新缓冲区的函数为 fflush #include <stdio.h...,方便后续进行操作 读取与写入不同,读取结束后,需要考虑 \0 的问题(在最后一个位置加),如果不加的话,会导致识别错误;系统(内核)不需要 \0,但C语言中的字符串结尾必须加 \0,现在是 系统->用户...---- 总结 以上就是本次关于 Linux【模拟实现C语言文件流】的全部内容了,通过 系统调用+缓冲区,我们模拟实现了一个简单版的 myStdio 库,在模拟实现过程中势必会遇到很多问题,而这些问题都能帮助你更好的理解缓冲区的本质

    1.8K10

    初学C语言,你的“行囊”需要准备什么呢?

    C语言是各大操作系统的基础,Unix、Linux、Windows其内核都清一色是C语言开发的,(某些地方是和汇编语言混合开发的),君不见Windows API都是C语言函数的接口?...Unix/Linux绝大多数应用都是C语言开发的;Windows应用程序用纯API开发已然不多,大多都是依靠某种Application work,比如所谓的VC++,其实就是指VC IDE + C++语言...二、Unix/Linux还是Windows,这是个很大的问题 不同的编程环境会造就出不同思维的程序员。...显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!...前言是作者对整本书的大体介绍,作者一般会告诉你需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。

    92430

    深入理解Linux C语言内存管理

    在任何程序设计环境及语言中,内存管理都十分重要。   内存管理的基本概念   分析C语言内存的分布先从Linux下可执行的C程序入手。...C语言程序编译完成之后,已初始化的全局变量保存在DATA段中,未初始化的全局变量保存在BSS段中。...堆的申请是由程序员自己来操作的,在C中使用malloc函数,而C++中使用new运算符,但是堆的申请过程比较复杂:当系统收到程序的申请时,会遍历记录空闲内存地址的链表,以求寻找第一个空间大于所申请空间的堆结点...堆是由malloc()函数分配的内存块,内存释放由程序员手动控制,在C语言为free函数完成。栈和堆的主要区别有以下几点:   (1)管理方式不同。   ...mem_add.c   1 /* mem_add.c演示了C语言中地址的分布情况 */   2   3 #include   4 #include   5   6 extern void afunc

    3.4K10

    C语言文件编程-Linux环境下运行

    文件编程函数介绍 如果在Linux系统下学习C语言,就会了解到两套文件编程接口函数: C语言标准的文件编程函数: fopen、fread、fwrite、fclose Linux下提供的文件编程函数: open...C语言标准库提供的文件编程函数 下面介绍C语言标准库提供的文件编程函数,一般对文件常用的操作就是:创建(打开)、读、写、关闭。...Linux下的系统函数: 文件编程函数 Linux下也有一套系统函数,用于文件操作,这些函数在Linux下常用于读写设备文件;当然,读写普通文件也是一样,普通文件也是磁盘上的数据,也是操作块设备驱动。...案例: 实现文件拷贝功能(fopen) 例如: cp 123.c 456.c 将123.c的数据拷贝到456.c文件里。 注意: 下面这个代码需要在命令行上运行,需要给main函数传参。...案例: 实现文件拷贝功能(open) 例如: cp 123.c 456.c 将123.c的数据拷贝到456.c文件里。

    2.9K10
    领券