C语言学习笔记——概要简述

使用C语言的快感在于对程序的每一个部分的精确的控制,数据结构、算法,看到他们正常工作的时候真是一种享受。

学习C语言,若要学好,需要学会在一开始的时候对程序的完全控制,一开始的时候尽量只调用最基本的库函数。确保自己清楚知道程序的每一个部分如何正常工作。

纯C,更像是一种信仰 ……

——引至‘知乎’

一、C语言的用途

1.操作系统/驱动开发. C语言是本地语言, 访问硬件很方便, 而且执行效率高效, 所以是操作系统和驱动开发的首选语言. 无论是windows还是unix/linux, 其操作系统的代码大部分是用C开发的;

2.嵌入式开发,也就是运行在非PC上的, 其实这个也类似操作系统或驱动;

3.游戏开发,无论是网游的服务器端, 还是3D的客户端, C/C++均有大量成熟的库, 可以帮你快速开发稳定高效的软件;

4.数据库程序,无论是oracle还是mssql, 均提供了与C语言的接口(proc等), 可以方便的开发数据库程序;

5.应用中间件,许多很牛的应用服务器也是C开发的. apache/.../

6.GUI程序, 其实这一块与VB或其它相比稍弱一些. 但是有跨平台现成的GUI库支持, 也是应用多多, 比如QT库, 这个应用很大的是nokia的手机系统(塞班), Wx库, 或MFC库(当然MFC不只是一个GUI库), GTK等。

二、C语言的特点

优点:

1.语言简洁,紧凑,使用方便,灵活

2.运算符丰富

3.数据类型丰富,具有现代语言的各种数据结构

4.具有结构化的控制语句

5.语法限制不太严格,程序设计自由度大

6.语言允许直接访问物理地址,对硬件进行操作

7.生成目标代码质量高,程序执行效率高

8.用C语言编写的程序可移植性好(与汇编语言比)

缺点:

1.C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。

2.C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不检查,从应用角度,C语言比其他高级原因较难掌握,也就是说,对用C语言的人,要求对程序设计更熟练一些。

三、C语言内容概要

1.基本语法:数据类型、运算符、表达式和语句、控制流

2.核心语法:函数、数组、指针、结构体(共同体、联合体)

3.高级语法:存储类型、内存管理、预处理、高级申明、字对齐、地址对齐

四、C语言学习方法

多练习,多思考,多总结,多借鉴

时间: 2024-08-24 14:56:43

C语言学习笔记——概要简述的相关文章

Perl语言学习笔记 9 正则表达式处理文本

1.替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做任何处理 2.定界符 对于没有左右之分的定界符,重复三次即可,如:s///.s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字符串,这两对可以不一样,如:s{}{}.s[]{}.s<>[] 3.可选修饰符 /g可进行全局替换,替换所有匹配到的字符串,如:s/ / /g /s:使得 . 匹配所有字符 /i:大小写无关 4.绑定操作符 $f

Perl语言学习笔记 6 哈希

1.哈希的键是唯一的,值可以重复! 2.访问哈希元素 $hashname{"$key"};#哈希为大括号,数组为方括号,键为字符串 $family_name{"fred"} = "firstd";#给哈希元素赋值 3.哈希键支持任意表达式 $foo = "na"; $family_name{$foo."me"};#获取$family_name{"name"}对应的值 4.访问整个哈希 %

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它

R语言学习笔记2——绘图

R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, 60)> drugB <- c(15, 18, 25, 31, 40) > plot(dose, drugA, type="b") > plot(dose, drugB, type="b") 该例中,我们引入了R语言中第一个绘图函数plot.pl

Go语言学习笔记(一) : 搭建Windows下的Go开发环境

最近突然对Go语言产生了兴趣,主要是因为在使用python的时候遇到了一些不爽的问题,然后发现了Go.Go是Google出的一个动态语言,语法和C++接近,性能也非常的好,而且还支持编译成exe发布,并且不依赖任何虚拟机(其实是打包在exe里面了),这种好语言怎么能够错过?所以便一时兴起,开始学习了起来.由于本人还处于异常小白的阶段,所以文章中可能不免有些错误,欢迎大家各种指正. 安装Go 前往Go语言的官方网站:http://golang.org/, 下载对应平台的安装包.如果是x86的系统可

Perl语言学习笔记 15 智能匹配与give-when结构

1.智能匹配操作符 替代绑定操作符: 在哈希中查找某一个键: 比较两个数组是否完全相同: 查找列表中是否存在某个元素: 智能匹配操作符与顺序无关,~~ 左右元素可以互换 2.智能操作符优先级 3.given语句 相当于c语言的switch语句 4.given可以测试多个条件,在default前用break,否则会导致default一直执行 5.笨拙匹配(正则表达式方式) 6.多个项目的when匹配 可以在语句中间加上其他语句: Perl语言学习笔记 15 智能匹配与give-when结构,布布扣

R语言学习笔记

參考:W.N. Venables, D.M. Smith and the R DCT: Introduction to R -- Notes on R: A Programming Environment for Data Analysis and Graphics,2003. http://bayes.math.montana.edu/Rweb/Rnotes/R.html 前言:关于R 在R的官方教程里是这么给R下注解的:一个数据分析和图形显示的程序设计环境(A system for data

Perl语言学习笔记 day 1

1.Perl Practical Extraction and Report Language:实用摘录与报表语言 2.多行注释 (1) =需要顶格写 = description statement; =cut (2)末尾的description需要顶格写 <<description; print "Hello,world!\n"; description 3.数字: 所有数字在Perl内都以双精度浮点数格式存储; 5**3:5*5*5: 4.字符串: 最短的字符串为空字符

JavaScript--基于对象的脚本语言学习笔记(三)

事件处理器 1.一个数据校验表单的例程 <html> <head> <title>js练习</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript"> String.prototype.trim=function(){ r