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 ;
}

运行结果如下:

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

 /* 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 ;
}

运行结果如下:

华氏温度转换为摄氏温度

 /* 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语言中,标识符可以含有字母、下划线和数字,但是必须以字母或者下划线开头。C语言是区分大小写的,对标识符的最大长度没有限制。

练习题:

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

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

《C语言程序设计现代方法》第2章 C语言基本概念的更多相关文章

  1. C语言学习书籍推荐《C语言程序设计 现代方法(第2版)》下载

    下载地址:点我 C语言仍然是计算机领域的通用语言之一,但现在的C语言已经和当初的时候大不相同了.本书主要的一个目的就是通过一种“现代方法”来介绍C语言,书中强调标准C,强调软件工程,不再强调“手工优化 ...

  2. C语言程序设计-现代方法(笔记1)

    第一章 C语言概述 1.C语言的历史(1.1) 起源:贝尔实验室开发的UNIX操作系统的副产品.标准化:C89和C99.基于C的语言:C++,Java,C#,Perl. 2.C语言的优缺点(1.2) ...

  3. Java语言程序设计(基础篇) 第六章 方法

    第六章 方法 6.2 定义方法 1.方法的定义由方法名称.参数.返回值类型以及方法体组成. 2.定义在方法头中的变量称为形式参数(formal parameter)或者简称为形参(parameter) ...

  4. C语言程序设计现代方法_基本类型(第七章)

    C语言支持两种不同的数值类型,整数类型,浮点类型. C语言的整数类型有不同的尺寸.int类型通常为32位,但在老的CPU上可能是16位.有些可能是64位. 因此,int型如果在16位CPU上最大值就是 ...

  5. 《C语言程序设计现代方法》第4章 表达式

    C语言的一个特点就是它更多地强调表达式而不是语句,表达式是表示如何计算值的公式. 当表达式包含两个或更多个相同优先级的运算符时,运算符的结合性(associativity)开始发挥作用.如果运算符是从 ...

  6. 《C语言程序设计现代方法》第3章 格式化输入/输出

    完整的细节将留到第22章中介绍. 调用printf函数一次可以打印的值的个数没有限制. 注意:C语言编译器不会检查格式串中转换说明的数量是否和输出项的数量相互匹配,也不会检查转换说明是否适合要显示项的 ...

  7. C语言程序设计现代方法1,2,3章

    1:浮点型(float)运算比int慢,并且可能存在舍入误差 如float存储0.1,以后使用可能会变成0.099999999987 2:宏定义只用大写,这是大多数C程序猿遵循的规范! C语言区分大小 ...

  8. 《C语言程序设计现代方法》第4章 编程题

    1 编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数. 方法一:没技术含量的 #include <stdio.h> int main() { int high, low; ...

  9. 《C语言程序设计现代方法》第1章 C语言概述

    C语言的特点:C语言是一种底层语言.C语言是一种小型语言.C语言是一种包容性语言. C语言的优点:高效.可移植.功能强大.灵活.标准库.与UNIX系统集成. C语言的缺点:C程序更容易隐藏错误.C程序 ...

随机推荐

  1. 【原创】QT编程 多线程

    请先保证已安装QT,没有请参考 http://www.cnblogs.com/kavs/p/4608926.html  安装QT. 新建threads文件夹存放项目:mkdir threads sud ...

  2. Shell符号展开

    字符 展开 * 这个 “*” 字符意味着匹配文件名中的任意字符 shell 把 “*” 展开成了另外的东西 ,在 echo 命令被执行前. ~家目录 算术表达式展开 算术表达式展开使用这种格式: $( ...

  3. Visual Studio2012中搭建WCF项目

    分布式系统:指在系统与系统之间进行通信,系统不再是孤立的,例如:淘宝查看物流信息,或是hao123的天气预报,这些可能都是用的别的系统的web方法. 1.创建空的解决方案 2.新建项目-WCF服务库项 ...

  4. PHP实现递归的三种方法

    递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去.实现递归函数可以采取什么方式呢?本文列出了三种基本方式.理解其原来需要一定的基础知识 ...

  5. 如何查看MySQL中每张表占用的空间大小

    如题,找到MySQL中的information_schema表,这张表记录了所有数据库中表的信息,主要字段含义如下: TABLE_SCHEMA : 数据库名 TABLE_NAME:表名 ENGINE: ...

  6. 记录一下学习VC的初步过程.

    有需要把状态栏图标缓存清空. 找到DELPHI和E语言的例子.最近学VC所以要改成VC的. 做控件的时候发现函数不能直接控制控件.在网上找了半天相关资料,都是说要包含"resource.h& ...

  7. python入门 第二天笔记

    程序主文件标志if __name__=="__main__": 在程序执行python 1.py 时候 程序1.py __name__ 为 main调用其他文件是,__name__ ...

  8. 水晶報表中小寫變大寫的函數-VB

    Function total (ls as number) as string dim dx_sz as string dim dx_dw as string dim str_int as strin ...

  9. Duplicate Symbol链接错的原因总结和解决方法-b

    duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在.但是经过一段时间的总结,发现这种错误总是有一些规律可以找的.例如,我们有如下的最简单的两个类代码: // ...

  10. 第 12 章 命令模式【Command Pattern】

    以下内容出自:<<24种设计模式介绍与6大设计原则>> 今天讲命令模式,这个模式从名字上看就很简单,命令嘛,老大发命令,小兵执行就是了,确实是这个意思,但是更深化了,用模式来描 ...