The C Programming Language (2nd)--笔记--1.1

本文介绍了C语言的基本结构和第一个程序——Hello, World!程序的细节。主要内容包括函数、变量、标准库的使用,特别是`main`函数和`printf`函数的应用。通过示例代码解释了如何输出字符串并理解换行符` `的作用。同时,提供了两个练习题以加深对程序的理解。
摘要由CSDN通过智能技术生成
#include <stdio.h>                     //包含标准库的信息
main()                                 //定义名为main的函数,它不接收参数值
{                                      //函数的语句都被包括在花括号中
printf("hello, world\n");              //main函数调用库函数printf以显示字符序列;\n代表换行符
}

                             第一个C语言程序

第一个程序helloworld.c程序

程序说明:

        C语言程序都由函数和变量组成。函数中包含一些语句,以指定要执行的操作;变量用于存储计算过程中使用的值。

        本例的函数名是main。通常,函数名没限制,但main是个特殊的函数名,特殊在每个程序都从main函数的起点开始执行,所以每个程序必在某个位置有一个main函数。

        main函数通常会调用其他函数来帮其完成某些工作。被调用的函数可由程序员自己编写,也可来自函数库。第一个程序中的第一行

        #include <stdio.h>

告诉编译器:在本程序中包含标准输入/输出的信息。许多C语言源程序的开始都包含这条语句。在第七章和附录B中对标准库进行讲解。

        函数间数据交换的方法之一是:调用函数向被调用函数提供一个值(参数)列表。函数名后面的一对圆括号将参数列表扩起来。本例中,main函数不需要任何参数,因此用空参数表()表示。

        函数中的语句用花括号{}锁住。例子中语句只有一条:

        printf ("hello, world\n");

调用函数时,只用函数名加上用圆括号锁住的参数表即可。上面这条语句将"hello, world\n"作为参数调用了printf函数。它是一个用于打印输出的库函数,这次,它打印双引号中间的字符串。

        用双引号锁住的字符序列称为字符串或字符常量,"hello, world\n"就是一个字符串。目前,仅用字符串作为printf及其他函数的参数。

C语言中,字符序列\n表示换行符,在打印中,输出打印将换行,从下一行的左端行首开始 。若去掉\n,即使输出打印完成后也不会换行。printf的参数中只用\n表示换行符。如果用程序的换行代替\n,例如

        printf ("hello, world

        ");

C编译器将会产生一条错误信息。

        printf函数永不自动换行,可多次调用该函数以分阶段得到一个长的输出行。第一个程序也可以些改成:
 

#include <stdio.h>
main()
{
printf("hello, ");

printf("world");

printf("\n");
}

第一个函数的变形

它的输出结果与第一个函数的一模一样。

注意:\n只代表一个字符。类似于\n的转义字符序列为表示无法输入的字符或不可见字符提供了一种通用的可扩展的机制。此外,C语言的转义字符序列还包含:\t, 制表符;\b, 回退符;\", 双引号;\\, 反斜杠符本身。详见2.3节。

练习1-1 在自选的系统中运行"hello, world"程序。故意去掉部分内容,看出错信息。

练习1-2 实验,printf函数的参数字符串中包含\c(c是转义字符序列中未列出的一个)时,观察新的情况。

The C programming Language By Brian W. Kernighan and Dennis M. Ritchie. Published by Prentice-Hall in 1988 ISBN 0-13-110362-8 (paperback) ISBN 0-13-110370-9 目录结构: Contents Preface Preface to the first edition Introduction Chapter 1: A Tutorial Introduction Getting Started Variables and Arithmetic Expressions The for statement Symbolic Constants Character Input and Output File Copying Character Counting Line Counting Word Counting Arrays Functions Arguments - Call by Value Character Arrays External Variables and Scope Chapter 2: Types, Operators and Expressions Variable Names Data Types and Sizes Constants Declarations Arithmetic Operators Relational and Logical Operators Type Conversions Increment and Decrement Operators Bitwise Operators Assignment Operators and Expressions Conditional Expressions Precedence and Order of Evaluation Chapter 3: Control Flow Statements and Blocks If-Else Else-If Switch Loops - While and For Loops - Do-While Break and Continue Goto and labels Chapter 4: Functions and Program Structure Basics of Functions Functions Returning Non-integers External Variables Scope Rules Header Files Static Variables Register Variables Block Structure Initialization Recursion The C Preprocessor File Inclusion Macro Substitution Conditional Inclusion Chapter 5: Pointers and Arrays Pointers and Addresses Pointers and Function Arguments Pointers and Arrays Address Arithmetic Character Pointers and Functions Pointer Arrays; Pointers to Pointers Multi-dimensional Arrays Initialization of Pointer Arrays Pointers vs. Multi-dimensional Arrays Command-line Arguments Pointers to Functions Complicated Declarations Chapter 6: Structures Basics of Structures Structures and Functions Arrays of Structures Pointers to Structures Self-referential Structures Table Lookup Typedef Unions Bit-fields Chapter 7: Input and Output Standard Input and Output Formatted Output - printf Variable-length Argument Lists Formatted Input - Scanf File Access Error Handling - Stderr and Exit Line Input and Output Miscellaneous Functions String Operations Character Class Testing and Conversion Ungetc Command Execution Storage Management Mathematical Functions Random Number generation Chapter 8: The UNIX System Interface File Descriptors Low Level I/O - Read and Write Open, Creat, Close, Unlink Random Access - Lseek Example - An implementation of Fopen and Getc Example - Listing Directories Example - A Storage Allocator Appendix A: Reference Manual Introduction Lexical Conventions Syntax Notation Meaning of Identifiers Objects and Lvalues Conversions Expressions Declarations Statements External Declarations Scope and Linkage Preprocessor Grammar Appendix B: Standard Library Input and Output: <stdio.h> File Operations Formatted Output Formatted Input Character Input and Output Functions Direct Input and Output Functions File Positioning Functions Error Functions Character Class Tests: <ctype.h> String Functions: <string.h> Mathematical Functions: <math.h> Utility Functions: <stdlib.h> Diagnostics: <assert.h> Variable Argument Lists: <stdarg.h> Non-local Jumps: <setjmp.h> Signals: <signal.h> Date and Time Functions: <time.h> Implementation-defined Limits: <limits.h> and <float.h> Appendix C: Summary of Changes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值