《C语言程序设计现代方法》第2章 C语言基本概念

C语言的基本概念

第一个C程序例子。

 /* pun.c */
#include <stdio.h> int main(void)
{
printf("To C, or not to C: that is the question.\n");
return ;
}

其中,main函数的参数列表完整形式可以写成:

 int main(int argc, char *argv[])
{
  //用户代码
}

编译和链接(更多资料建议查阅GCC文档)

预处理:首先程序会被送交给预处理器(preprocessor)。预处理器执行行以#开头的命令(通常称为指令)。预处理器有点类似于编辑器,它可以给程序增加内容,也可以对程序进行修改。

编译  :预处理器修改后的程序现在可以进入编译器(compiler)了。编译器会把程序翻译成机器指令(即目标代码)。然而,这样的程序还是不可以运行的。

链接  :在最后一个步骤中,链接器(linker)把由编译器产生的目标代码和所需的其他附加代码整合在一起,这样才最终产生了完全可执行的程序。

扩展:Linux下C程序的编译于调试。

简单的C程序一般具有以下形式:

 指令

 int main(void)
{
语句
}

C语言极其依赖缩写词和特殊符号,这是C语言非常简洁(或者不客气地说含义模糊)的一个原因。即使最简单的C程序也依赖3个关键语言特性:指令(在编译前修改程序的编辑指令)、函数(被命名的可执行代码块,如main函数)、语句(程序运行时执行的命令)。

类型,用来说明变量所存储的数据的种类,它决定了分配的内存空间、取值范围以及可以对其进行的操作。

float型变量的缺陷:①进行算术运算时float型变量通常比int型变量慢;②float型变量所存储的数值往往只是实际数值的一个近似值。

变量必须先声明,后使用。

小技巧:当我们把一个包含小数点的常量赋值给float变量时,最好在该常量后面添加一个字母f(代表float)。

计算箱子的空间重量

 /* dweight.c */
/* Computes the dimensional weight of a 12" x 10" x 8" box */ #include <stdio.h> int main(void)
{
int height, length, width, volume, weight; height = ;
length = ;
width = ;
volume = height * length * width;
weight = (volume + ) / ; printf("Dimensions: %dx%dx%d\n", length, width, height);
printf("Volume(cubic inches): %d\n", volume);
printf("Dimensional weight (pounds): %d\n", weight); return ;
}

运行结果如下:

《C语言程序设计现代方法》第2章 C语言基本概念

计算箱子的空间重量(改进版)

 /* dweight2.c */
/* Computes the dimensional weight of a box
from input provided by the user
*/ #include <stdio.h> int main(void)
{
int height, length, width, volume, weight; printf("Enter height of box: ");
scanf("%d", &height);
printf("Enter length of box: ");
scanf("%d", &length);
printf("Enter width of box: ");
scanf("%d", &width);
volume = height * length * width;
weight = (volume + ) / ; printf("Dimensions: %dx%dx%d\n", length, width, height);
printf("Volume(cubic inches): %d\n", volume);
printf("Dimensional weight (pounds): %d\n", weight); return ;
}

运行结果如下:

《C语言程序设计现代方法》第2章 C语言基本概念

华氏温度转换为摄氏温度

 /* celsius.c */
/* Converts a Fahrenheit temperature to Celsius */ #include <stdio.h> #define FREEZING_PT 32.0f
#define SCALE_FACTOR (5.0f / 9.0f) int main(void)
{
float fahrenheit, celsius; printf("Enter Fahrenheit temperature: ");
scanf("%f", &fahrenheit);
celsius = (fahrenheit - FREEZING_PT) * SCALE_FACTOR;
printf("Celsius equivalent: %.1f\n", celsius); return ;
}

运行结果如下:

《C语言程序设计现代方法》第2章 C语言基本概念

标识符:在C语言中,标识符可以含有字母、下划线和数字,但是必须以字母或者下划线开头。C语言是区分大小写的,对标识符的最大长度没有限制。

练习题:

6 为什么说在标识符中使用多个相邻的下划线(如current___balance)不太合适?

因为人们不太能够准确判断下划线的个数,因此容易出错。

上一篇:Objective-C之用C的字符来处理NSString相关的字符替换和拼接的问题


下一篇:传参方式由url携带改为post提交