Chinaunix首页 | 论坛 | 博客
  • 博客访问: 132822
  • 博文数量: 75
  • 博客积分: 3483
  • 博客等级: 中校
  • 技术积分: 820
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-07 08:31
文章分类

全部博文(75)

文章存档

2011年(53)

2010年(22)

我的朋友

分类: C/C++

2011-02-17 21:34:04

第一章 介绍
让我们先大体的对C有一个快速的了解,本章的目标是用一些基本的小程序介绍语言的一些基本元素,我们不会去纠结于一些细节,规则 和异常上的内容。基于这一点,本章的一些例子也许并不是很完整或者很精确(但肯定是正确的)。我们希望读者可以尽快的完成一些有用的小程序,尽快的掌握我们需要去关心的一些基本内容:变量、常量、基本运算、控制流程、函数、基本的输入和输出(rudiment)。我们在这章刻意忽略了语言的一些其他重要特性,比如指针、结构体、大部分的C的操作符、一些控制语句、还有标准库的内容。
这样肯定有其不利的地方(drawback),最重要的是语言中任何一个特性都并没有在这里做过一个完整的介绍,这一章的教程都是很简短(brief),甚至可能有些具体误导性。因为这些例子并没有充分的使用c强大的能力,这些例子并不时那么的简洁或者简练(concise and elegant)。我们尽可能的去减少这种问题,在这里只是警告下。任何的障碍在后面的章节中都会被详细的讲解。
1.1 开始
掌握一门语言的唯一办法就是去使用它,下面照例就是第一个程序:
打印下面的字符:
hello world
这里有个问题(hurdle),要解决他你必须要完成这段代码,成功的编译、链接、运行,最后就是找到你得输出点。在掌握这些基本的细节之后,其他的东西都是很简单的。
c语言中打印"hello world"的代码如下:
  1. #include <stdio.h>
  2.    main()
  3.    {
  4.      printf("hello, world\n");
  5.    }
如何运行这段代码取决于你使用的系统,我们使用一个特定的例子,在unix系统中,你必须创建一个以".c"为后缀的文件,然后使用如下的命令去编译他:
cc hello.c
如果你没有搞错啥(botch),比如少了(omit)个把字符或者有什么拼写错误,编译过程就可以正常运行,同时会生成一个可执行文件a.out,输入如下命令:
./a.out
应该会打印:
hello, world
在其他的操作系统中, 这个过程会有些不一样,找个人问一下。
下面是对这段代码的一些注释。对于一段c代码来说, 不管其大小,他总是由函数和变量构成。函数包含了定义执行操作的语句,同时还包含了执行过程中用来存储的变量。c 函数应该是类似于Fortran中的字例程(subroutines)和函数,或者是Pascal中的过程和函数。在例子中有一个main函数,正常情况下你可以给函数任意定义你所想的名字,当时main函数比较特殊, 你的程序必须从main函数开始执行。也就是说,任何程序必须有一个main函数。
通常来说,main函数会调用其他函数来执行它的工作,这其中自然也包括你自己写的函数,也包括库中提供的函数。代码的第一行:
#include
告诉编译器去包含标准输入输出库的信息。这一行会出现在很多其他的源文件中。
函数之间数据传递可以通过调用函数来实现, 函数包括一系列指的集合、调用参数、以及他所调用的功能(?) 。 函数名后面的括号(parenthese)包含了参数列表,在例子中,main函数并没有参数。
  1. #include <stdio.h> //包含库函数信息

  2. main() //定义无参的mian函数

  3.                                    
  4. { //main函数中的语句用{ } 括起来

  5.     printf("hello, world\n"); //main函数调用库函数printf来打印字符序列

  6.                                          
  7. }
函数中的语句使用{ }括起来。例子中的main函数只有一条语句。
printf("hello, world\n");

函数通过其名称, 外加括号括起来的参数列表.本例中调用printf函数,其中使用了"hello, world\n"参数。 printf属于库函数中用来打印输出的,本例中的参数就是那些双引号中的字符序列。
双引号中的字符序列称为字符串或则字符常量,我们暂时(for the moment)使用字符串作为printf和其他函数的参数。
字符串中的字符序列\n用来表示换行字符,换行字符会将输出打印至下一行的左边开头处。如果忽略了\n(这东西 肯定有 用), 你会发现没有换行=.=!,如果要打印换行符必须用\n,如果用下面的方法:
   printf("hello, world
   ");
编译器会报错的。
printf不会自动的添加换行符,所以呢几个调用还是会依次的输出在同一行上面。上面的例子可以等同下面的代码:
  1. #include <stdio.h>
  2.    main()
  3.    {
  4.      printf("hello, ");
  5.      printf("world");
  6.      printf("\n");
  7.    }
打印同样的输出。
注意, \n表示一个字符, 类似于\n的转义字符序列提供了一种通用而且可扩展的用来表示不可见字符1的方法, c语言中同样提供了其他的比如:\t表示tab, \b表示空格, \"表示双引号,\\表示反斜线符号本身(backslash)。
习题略了.
阅读(866) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~