在《二进制思想以及数据的存储》一节中讲到:
  • 计算机要处理的数据(诸如数字、文字、符号、图形、音频、视频等)是以二进制的形式存放在内存中的;
  • 我们将8个比特(Bit)称为一个字节(Byte),并将字节作为最小的可操作单元。

我们不妨先从最简单的整数说起,看看它是如何放到内存中去的。

变量(Variable)

现实生活中我们会找一个小箱子来存放物品,一来显得不那么凌乱,二来方便以后找到。计算机也是这个道理,我们需要先在内存中找一块区域,规定用它来存放整数,并起一个好记的名字,方便以后查找。这块区域就是“小箱子”,我们可以把整数放进去了。

C语言中这样在内存中找一块区域:
int a;
int又是一个新单词,它是 Integer 的简写,意思是整数。a 是我们给这块区域起的名字;当然也可以叫其他名字,例如 abc、mn123 等。

这个语句的意思是:在内存中找一块区域,命名为 a,用它来存放整数。
注意 int 和 a 之间是有空格的,它们是两个词。也注意最后的分号,int a表达了完整的意思,是一个语句,要用分号来结束。
不过int a;仅仅是在内存中找了一块可以保存整数的区域,那么如何将 123、100、999 这样的数字放进去呢?

C语言中这样向内存中放整数:
a=123;
=是一个新符号,它在数学中叫“等于号”,例如 1+2=3,但在C语言中,这个过程叫做赋值(Assign)赋值是指把数据放到内存的过程。

把上面的两个语句连起来:
		... 
		
			Read more »
		
Views: 25 | Added by: liangcx126 | Date: 12.29.2018 | Comments (1)

对于初学者来说,本节涉及到的代码比较复杂,名字也不容易记住,大家只需要把代码复制到编译器,看一下运行效果就可以。本节重在演示C语言能做什么,而不是教授大家知识点(这些知识点也不是C语言的重点),所以,不理解的就放过吧,不会影响后面的学习。
C语言不总是“黑底白字”,它也可以是彩色的,可以调用Windows.h头文件下的SetConsoleTextAttribute函数改变文字和背景颜色。

调用形式为:
SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );
hConsoleOutput表示控制台缓冲区句柄,可以通过GetStdHandle(STD_OUTPUT_HANDLE)来获得;wAttributes表示文字颜色和背景颜色。
这里不去追究HANDLE的含义,后续在Windows开发中会详细讲解。
WORDwindows.h中定义,等同于unsigned short,使用低4位表示文字(前景)颜色,高4位表示文字背景颜色,所以它的取值为xx。x为一位16进制数,即0~F都可以使用,可以随意组合。

0~F 分别代表的颜色如下:
0 = 黑色    8 = 灰色    1 = 淡蓝      9 = 蓝色
2 = 淡绿    A = 绿色    3 = 湖蓝      B = 淡浅绿  
C = 红 ... Read more »
Views: 21 | Added by: gigi | Date: 12.29.2018 | Comments (0)

前面我们给出了一段最简单的C语言代码,并演示了如何在不同的平台下进行编译,这节我们来分析一下这段代码,让读者有个整体的认识。代码如下:
  1. #include <stdio.h>
  2. int main()
  3. {
  4. puts("C语言中文网");
  5. return 0; ... Read more »
Views: 22 | Added by: gigi | Date: 12.29.2018 | Comments (0)

我们有两种方式从计算机获得信息:一是看屏幕上的文字、图片、视频等,二是听从喇叭发出来的声音。让喇叭发出声音目前还比较麻烦,我们先来看看如何在屏幕上显示一些文字吧。

在屏幕上显示文字非常简单,只需要一个语句,例如,下面的代码会让屏幕显示出“C语言中文网”:
puts("C语言中文网");
这里有一个生疏的词汇puts,用来让计算机在屏幕上显示文字。

更加专业的称呼:
  • "在屏幕上显示文字"叫做输出(Output)
  • 每个文字都是一个字符(Character)
  • 多个字符组合起来,就是一个字符序列,叫做字符串(String)

puts 是 output string 的缩写,意思是”输出字符串“。

在C语言中,字符串需要用双引号" "包围起来,C语言中文网什么也不是,计算机不认识它,"C语言中文网"才是字符串。

puts 在输出字符串的时候,需要将字符串放在( )内。

在汉语和英语中,分别使用.表示一句话的结束,而在C语言中,使用;表示一个语句的结束。puts("C语言中文网")表达了完整的意思,是一个完整的语句,需要在最后加上;,表示当前语句结束了。

总结起来,上面的语句可以分为三个部分:
  • puts( )命令计算机输出字符串;
  • "C语言中文网"是要输出的内容;
  • ;表示语句结 ... Read more »
Views: 17 | Added by: gigi | Date: 12.29.2018 | Comments (0)

在计算机高速发展的最近几十年中,出现了上百种编程语言,有的编程语言是针对某个领域专门设计的,例如: PHP 专门用来开发网站后台;

JavaScript 最初只能用于网站前端开发,实现一些网页特效,后来有“好事的”程序员将它移植到服务器上,才赋予 JavaScript 网站后台开发的能力; Objective-C 和 Swift 只能用于苹果产品的开发,包括 iPhone、iPad、Mac、MacBook 等; Visual Basic(VB)专门用来在 Windows 平台下进行软件开发。

而大部分的编程语言不是针对某个特定领域设计的,它们能做很多事情,比较通用化。但是在长期的实践过程中,这些编程语言也找到了适合自己的位置,例如: Java 可以用于网站后台开发、Android 开发、PC软件开发,在大数据领域也分得一杯羹; Python 主要用于系统运维、网站后台开发、数据分析、人工智能、云计算等领域; Go语言除了用于服务器、通讯等较底层的开发,还能用于网站后台开发。

C语言也是一门通用性的语言,并没有针对某个领域进行优化,就目前而言,C语言主要用于较底层的开发,例如: Windows、Linux、Unix 等操作系统的内核90%以上都使用C语言开发; 开发硬件驱动,让硬件和操作系统连接起来,这样用户才能使用硬件、程序员才能控制硬件; 单片机和嵌入式属于软硬件的结合,有很多使用C语言的地方; 开发系统组件或服务,用于支撑上层应用; 编写PHP扩展,增强PHP的功能; 如果对软件某个模块(例如算法和搜索部分)的效率要求较高,也可以使用C语言来开发。

当然,C语言也能用于PC软件开发,做出类似 QQ、迅雷、Chrome 等带界面的程序,但是由于C语言开发效率低,第三方库较少,实际项目中已经没有程序员这么做了,大家已经转向了 C++。

初学者的疑问

既然C语言能做这么多事情,为什么很多初学者学完C语言以后仍然非常迷茫,只能编写没有界面的控制台程序呢?

这是因为,C语言仅仅是一个工具,它的标准库也很简单,只提供了最基本的功能,如果希望开发出实用的程序,往往还需要学习其他方面的知识。例如: 开发硬件驱动要学习数字电路,了解 Windows 或 Linux 内核 ... Read more »

Views: 22 | Added by: gigi | Date: 12.29.2018 | Comments (0)