⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 标 题 c语言历史zz.txt

📁 K&R s saying with the history of C language. worth reading
💻 TXT
📖 第 1 页 / 共 4 页
字号:
[编辑]

跳转语句

跳转语句包括四种:goto,continue,break和return。

goto语句是无条件转移语句:

goto 标记

标记必须在当前函数中定义,使用“标记:”的格式定义。程序将跳到标记处继续执行。由于goto容易产生阅读上的困难,所以应该尽量少用。

continue语句用在循环语句中,作用是结束当前一轮的循环,马上开始下一轮循环。

break语句用在循环语句或switch中,作用是结束当前循环,跳到循环体外继续执行。但是使用break只能跳出一层循环。在要跳出多重循环时,可以使用goto使得程序更为简洁。

当一个函数执行结束后要返回一个值时,使用return。return可以跟一个表达式或变量。如果return后面没有值,将执行不返回值。
[编辑]

在C99中运算符号

+ -
() [] -> . ! ++ -- (cast)       括号、成员、逻辑非、自加、自减、强制转换
++ -- * & ~ ! + - sizeof        单目运算符
* / %   算术运算符
算术运算符
<< >>   位运算符
< <= > >=       关系运算符
== !=   关系运算符号
&       位与
^       位异或
|       位或
&&      逻辑与
||      逻辑或
?:      条件运算符
= += -= *= /= %= <<= >>= &= |= ^=       赋值运算符
,       顺序运算符
[编辑]

数据类型
[编辑]

基础数据类型

注意:以下是典型的数据位长和范围。但是编译器可能使用不同的数据位长和范围。这取决于使用的编译器。请参考具体的参考手册。

在头文件<limits.h>和<float.h>中说明了基础数据的长度。float,double和long double的范围就是在IEEE 754标准中提及的典型数据。
关键字  位长    范围
char    1       -128..127 or 0..255
unsigned char   1       0..255
signed char     1       -128..127
int     2 or 4  -32768..32767 or
-2147483648..2147483647
short int       2       -32768..32767
long int        4       -2147483648..2147483647
float   4       3.4x10-38E..3.4x10+38E
double  8       1.7x10-308E..1.7x10+308E
long double     12      ???
[编辑]

数组

如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NUL作为数组的结束。

例如:

    int myvector [100];
    char mystring [80];
    float mymatrix [3] [2] = {2.0 , 10.0, 20.0, 123.0, 1.0, 1.0}
    int notfull [3][3] = {{1},{1,2,3},{4,5}} (*)
    char lexicon [10000] [300] ; /* 共一万个最大长度为300的字符数组。*/
    int a[3][4];

上面最后一个例子创建了一个数组,但也可以把它看成是一个多维数组。注意数组的下标从0开始。这个数组的结构如下:
a[0][0]         a[0][1]         a[0][2]         a[0][3]
a[1][0]         a[1][1]         a[1][2]         a[1][3]
a[2][0]         a[2][1]         a[2][2]         a[2][3]


例子(*)创建了一个3*3的二维数组,初始化时有些元素并未赋值.如下:

    1 0 0
    1 2 3
    4 5 0

为0的位置的数值是随机的.
[编辑]

指针

如果一个变量声明时在前面使用*号,表明这个变量是一个指针。

例如:

    int *pi; /* 指向整型数据的指针 */
    int *api[3]; /* 由指向整型数据的指针构成的数组,长度为3 */
    char **argv; /* 指向一个字符指针的指针 */

储存在指针中的地址所指向的数值在程序中可以由*读取。例如,在第一个例子中,*pi是一个整型数据。这叫做引用一个指针。

另一个运算符&,叫做取地址运算符,它将返回一个变量、数组或函数的存储地址。因此,下面的例子:

    int i, *pi; /* int and pointer to int */
    pi = &i;

i和*pi在程序中可以相互交替使用,直到pi被改变成指向另一个变量的指针。
[编辑]

字符串

要使用字符串并不需要引用库,但是C标准库确实包含了一些用于对字符串进行操作的函数,使得它们看起来就像字符串而不是数组。使用这些函数需要引用头文件<string.h>。


    * strcat(dest, source) - 连接两个字符串,把source加到dest末尾。
    * strchr(s, c) -在字符串c中找出字符s第一次出现的位置。当没有找到时,返回Null。
    * strcmp(a, b) - 比较字符串a和b的大小。如果两个字符串相同,返回0;如果a>b,返回正数;如果a<b,返回负数。
    * <- 把source中的n个字符追加到dest后面。null后面的值将不会被添加。
    * strncmp(a, b, n) - 比较字符串a和b中n个字符的大小。如果两个字符串相同,返回0;如果a>b,返回正数;如果a<b,返回负数。
    * strncpy(dest, source, n) - 把字符串source拷贝到字符串dest中。(最多拷贝n个)
    * strrchr(s, c) - 在s中查找最后一次出现c的位置。返回这个位置。如果找不到,返回null。

[编辑]

文件输入/输出

在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI/ISO C中,这些函数被定义在头文件<stdio.h>中。
[编辑]

标准输入/输出

有三个标准输入/输出是预定义的:

    * stdin 标准输入
    * stdout 标准输出
    * stderr 输入输出错误

这些定义在运行过程中是自动的打开和关闭的,所以它们并不需要进行显式定义。

下面的这个例子显示了一个过滤程序(filter program)是怎样构成的。

#include <stdio.h>
 
int main(){
       int c;
       while (( c = getchar()) != EOF ) {
               if (anErrorOccurs) {
                       fputs("an error eee occurred\n", stderr);
                       break;
               }
               putchar(c);
       }
}

[编辑]

传递命令行参数

在命令行赋予程序的参数将通过在main()函数中定义一个整型参数(int)和一个指向字符指针的指针型参数(char **)来实现,前者传递命令行参数的个数,后者传递命令行参数内容。习惯上将这两个参数分别命名为argc和argv。程序文件名被作为第一个命令行参数。

对于下列程序:

#include <stdio.h>
 
int main(int argc, char **argv) {
  int i;
  for(i=0;i<argc;i++)
    printf("%d:%s\n",i,argv[i]);
  return 0;
}

输入命令(假设该程序生成C:\TC\a.exe): a one two three

则会得到下面的输出结果:

0:C:\TC\A.EXE
1:one
2:two
3:three

[编辑]

C语言的标准库

以下列出由C语言提供的标准函数库,函数库通过#include进行引用。

在C89标准中:

    * <assert.h>
    * <ctype.h>
    * <errno.h>
    * <float.h>
    * <limits.h>
    * <locale.h>
    * <math.h>
    * <setjmp.h>
    * <signal.h>
    * <stdarg.h>
    * <stddef.h>
    * <stdio.h>
    * <stdlib.h>
    * <string.h>
    * <time.h>

在95年的修正版中

    * <iso646.h>
    * <wchar.h>
    * <wctype.h>

在C99中增加了六个函数库

    * <complex.h>
    * <fenv.h>
    * <inttypes.h>
    * <stdbool.h>
    * <stdint.h>
    * <tgmath.h>

[编辑]

C语言的保留关键字
char    short   int     unsigned
long    float   double  struct
union   void    enum    signed
const   volatile        typedef         auto
register        static  extern  break
case    continue        default         do
else    for     goto    if
return  switch  while   sizeof
[编辑]

参见

    * 计算机科学课程列表

--



※ 来源:·水木社区 newsmth.net·[FROM: 35.11.54.*]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -