声明: 以下内容可能会引起某些读者不适, 请小心阅读. 有些内容并没有详细介绍, 可能简单理解也是错误的, 但是这都是为了尽量简单。
前言: 我自己认为, 对想要学习编程的人而言, C语言是一门必须要学习的语言, 但是其实就现在这个时代的话, 你没有学习C语言的绝对必要。使用别的高级语言(比如python)站在巨人的肩膀上很好, 也很爽。
推荐书目:
- 《C语言程序设计》
- 《C标准库》
- 《C primer plus》
- 《C缺陷和陷阱》
- 《C专家编程》
- 《linux程序设计》
编程语言里面有几个概念:
- 数据类型
- 变量
- 流程控制
- 函数
- 运算
数据类型
数据类型就是数据的类型. 因为计算机的职能就是操作数据. 而数据肯定是有类型的,比如说听歌用的mp3,看图片用的jpeg, 看片儿用的rmvb. C语言里面有一些她自己的基本的数据类型.例如: 整数类型(顾名思义, 整数类型的变量存放的就是整数) 小数 字符(字符类型就是存放a b c d 这些符号的. 中文我们不用在这里考虑)等
所以, C语言是有这么一些类型能让你在计算机内表示现实的东西. 比如说你要保存一个人的名字的话, 就是字符类型. 你要保存一个人的年龄的话, 就是整数类型.
变量
变量就是用来指代一个特定的数据类型对象的名称. 比如说, 我们在高中数学中学到的变量x, 它可以是1.25, 也可以是100. 我们在数学中用x来代替这个值, 或者指代一个集合, 比如说x属于R 全体实数.
在C语言里面变量是一个数据类型的实例. 简单说, 就是如果你需要一个C语言表示来保存一个人的年龄值, 那么你应该这样做
1
|
int age;
|
int是类型的关键字, age是变量的名字. 所以这行代码说. 我要一个叫age的变量. 如果你需要一些别的变量, 你可以这样做:
1
2
|
double PI;
char ch;
|
第一行代码说 我要一个叫PI的小数类型的变量.
第二行代码说 我要一个字符类型的变量, 名字叫ch.
变量命名规则 : 变量名称必须以下划线(_)或者英文字母开头, 变量名可以由下划线 英文字母 数字组成.
流程控制
流程控制就是对代码运行的流程进行控制, 一般来说, 代码是从上往下执行的。 但是, 有些特殊的语句能起到特殊的功能, 对代码执行可以进行较好的控制。
C语言里面常用的三种循环控制是
- if 条件判断
- while 循环
- for 循环
If
条件判断的逻辑就是这样的: 如果A成立的话, 就B。 如果不是A而是C, 那就D。
简言之, 看代码:
1
2
3
4
5
6
7
|
if ( A )
{
B;
} else if ( C )
{
D;
}
|
while
while循环简单, 先看代码:
1
2
3
4
5
|
int n = 1;
while(n > 0)
{
n = n - 1;
}
|
第一行声明了一个变量, 同时给他一个值, 令n为1; 当 n>1 成立的时候,就执行循环体里面的语句, 执行到最后一行的时候, 就继续判断条件是否成立。 在本例中, 在第5行遇到右大括号的时候, 判断n>1是否成立, 此时n = 0; 因为在 n = n - 1; 这一行代码中。 = 这个赋值号(将右边的结果赋给左边的变量)使得n先减去1, 然后把n-1的结果给n。这样的话while条件语句就不成立了。 结束循环, 执行第5行后面的代码。
for
for循环也是一种循环, 但是它是一种特殊的循环。 自身带有一种迭代更新的功能。 初学可以记住有这么一个循环存在, 自己写代码的时候, 参考一下。
1
2
3
|
for ( int n = 1; n > 0; n = n- 1)
{
}
|
这个for循环和while循环的功能是一样的, 但是这个循环体({}包括的范围)是空的。
for循环先执行int n = 1; 然后判读条件是否成立, 如果成立的话, 先执行循环体,然后执行for循环语句括号里面第二个分号之后的部分, 在本例中, 就是n = n - 1。
函数
函数就是一个工厂,是一种投入和产出的过程。比如说面包厂原材料是小麦,产出结果是面包。
先学习如何声明一个函数, 有点像工厂在工商部门注册的信息.
1
2
|
// 函数结果类型 函数名称(参数类型 参数名,...);
int sum(int a , int b);
|
我们在这里声明了一个函数, 他可以计算出两个整数的和, 参数的个数是可以改变的, 本例中这个工厂需要两个参数。一个叫a, 一个叫b。 而且他们的类型都是整数类型。这个叫sum的函数返回的结果的类型也是整数类型。
这样我们就注册了一个函数。
我们学习如何定义一个函数, 就是说:如何创建函数的实体, 修建工厂的过程。
1
2
3
4
|
int sum(int a, int b)
{
return (a+b);
}
|
return是返回的意思, 在这里就是说把a+b的结果返回。
如何使用函数。
1
2
|
int n = sum(1, 2);
// 函数名(参数1, 参数2) 这个函数的返回值就是这个式子的计算结果
|
在这里, 我们给n赋值为3。
我们要介绍一个函数叫printf, 这个函数可以把一些字符打印在标准屏幕上面。
1
2
3
4
5
6
7
|
#include <stdio.h>
int main(void)
{
printf("Hello Jack.");
return 0;
}
|
显然, 我们在这里定义了函数叫main,()里面说void意味着,他不需要参数。在函数体内部,它使用了一个叫printf的函数, 用它在屏幕上打印了Hello Jack.
运算
运算是一个很大的概念。 简单说, 前面的所有都是运算, 毕竟是计算机嘛。 你没必要去关心运算是什么,但是你绝对有必要了解C语言有哪些运算符(就像+,-,=这样的运算符),以便在你需要的时候,能想到它。
指针
指针是C语言的核心内容, 另外讲解。