最近这段时间,用零碎的时间看了一本书《写给大家看的C预言书》(中文版),这本书作者是Greg Perry。我在图书馆无意中看到了这本书,随手翻了翻,感觉写的挺有意思的,一本简约易懂的C语言入门级书籍。看完之后,感觉还是老外的技术书籍写的比较好。“发表时最好的记忆”,于是决定写一下学习总结,以后如果使用的时候,可以随时翻阅。
关于“程序”(program)的定义有很多,这里的解释我觉得通俗简单,即:为了让电脑执行某项具体任务而提供给它的详细指令集合就是程序。运行C语言必须要有C编译器(C compiler),书中推荐的Turbo C++、Borland C++和Visual C++。但是我使用的是Dev-C++,虽然编译器挺简单,当时对于书中提供的示例,完全没有压力。
关于编译器的作用:编译器获取C源代码(source code)并将其翻译成为机器语言(machine language).电脑最终接收的指令必须是二进制(binary)形式。电路的两种状态呗成为二进制状态(binary state).C编译器就是把C程序装换成1和0(表示内部的开或者关)。
(1)一切从main()函数开始
C语言最重要的部分是main()函数(function)。关于函数的定义:C自带的或者编写的执行某些任务的例行程序。每个程序都必须包含main()函数,它是程序能够执行的入口。
1.1
数据类型------------C语言中的数据必须有数字、单词和字符构成。目前最常见的数据时:1,字符;2,整数;3,浮点数(也成实数)。
字符(charactor),是电脑能表示的任意一个字符。电脑能够识别256个不同的字符,每个字符都能够在ASCII表中找到。电脑能够表示的任何东西都能够作为字符。 C 语言中所有的字符数据都括在单引号‘ 中,单引号把字符数据与其他数据区分开。注:1,空格也能产生一个字符 2,’A‘ 'a' '4' '%' 是字符数据, A a 4 %不是字符数据 3,字符数组只能是单个字符,不能再单引号中出现多个字符。例外:’\n‘是少数几个两个字符组合,C语言把它解释成为一个字符。
字符串(string):多个字符的组合是字符组合,使用引号(" ")区分。C语言中并没有字符串的变量,用字符来表示字符串。
数字:没有小数的完整数。注:整数不能够以0开头,否者C语言会认为输入的是16进制或者八进制。(053是一个八进制数,0x45是一个16进制数)
浮点数(float point number):带小数点的数字。 如:543.55、0.0、-14.456、.22
注意:浮点数占用的内存通常是整数的两倍,尽量使用整数,把浮点数留给需要小数的点的值
/*Prints a character and some numbers*/ #include<stdio.h> main() { printf("A letter grede of %c\n",'B'); printf("Read a lot.\n"); printf("Can\tHelp\tYou\n"); printf("Ring my charm\a\n"); printf("I said, \"No Way.\"\n"); printf("\\ means escapse\n"); printf("%d --- %.2f ---- %d \n",24,12.02,33); getchar(); return 0; }
注:getchar();这个函数为了使cmd的屏幕停留,查看屏幕屏幕上的输出信息。
(二) 代码注释
C语言程序从头到尾都应该加上注释(comment)。注释可以方便后续人员对于程序的维护(maintenance)。注释不是C的命令,C语言编译器会过滤掉程序中所有注释,注释是给程序员来看的。关于注释,我觉得还是要言简意赅,简明有效,否者满屏幕的注释将,找程序都困难了。
C语言中注释方式有两种:
1, 用/* 和*/进行注释,如:/* Written by : zhang san ,finished April, 2013*/ ,但是使用这种注释方式,切忌嵌套其他注释;
2,用//来表示单行注释。
注意:1,在程序中加入空白(white space),即在程序中加入空格和空行。可以提高程序的可读性。
/* Writent by : Jet Liu , finished on March 26 , 2013*/ /* Filename : WhiteTest.c */ /* Compute the user the taxes */ #include<stdio.h> main() { float salary ; /* Variables to hold Salary */ float tax ; /* Variable to hold tax */ /* Asks for user salary */ printf("How mach do you make? "); scanf(" %f", &salary); tax = .33 * salary; /*Compute tax*/ printf("You owe %.2f in taxes. ", tax); getchar(); getchar(); return 0; }
(三) 输出 (使用printf())
3.1 关于printf
printf()是把字符、数字和单词发送到屏幕上。
printf()的格式: printf(controlSting [ , data]);
这里的controlSting是必须存在的一般为字符串形式, 而后面的中括号中的data则是可选,一般使用变量替换controlSting中的占位符(placeholder),占位符是提示这个位置要用其他的值来替代。
如: 1, printf("Keep learning.");
2, printf("I am %d", 16)
注:1,每个命令和函数后面都需要分号(;),C语言据此来判断一行是否结束。函数的第一行不需要加分号,如 main()。
2,其实printf()实际上没有吧输出发送到屏幕,而是发送到电脑的标准输出设备(standard output device)。大多数操作系统中包括MS-DOS在内,都将标准输出发送到屏幕。
3.2 转移序列
代码 | 描述 |
\n | 换行 |
\a | 报警 |
\t | 制表符 |
\\ | 反斜杠 |
\* | 引号 |
说明:一个转义字符在C语言中存储为一个字符,并且并不会把字符直接答应在屏幕上,而是会产生描述中的效果,如打印语句出现\n 或者 \a 则会出现换行和电脑铃声响起。
(3) 转化字符
用转化字符(conversion character)来表示数字的格式。 列出常用的转化字符。
转化字符 | 描 述 |
%d | 整数 |
%f | 浮点数 |
%c | 字符 |
%s | 字符串 |
例子:printf("%s %d %.2f %c\n","Sam", 14, -8.55, 'X');
注意:1,C语言不会自动格式化,必须自己使用转化字符
2,不要忘记%f的小数控制,否则C程序会把所有浮点数打印成6个小数位。
/*Prints a character and some numbers*/ #include<stdio.h> main() { printf("%c %s %d %.2f\n", 'Q', "Hello!", 14 , 64.21, 64.21); printf("%c\n", 'Q'); printf("%s\n", "Hello!"); printf("%d\n", 14); printf("%f\n", 64.21); printf("%.2f\n", 64.21); getchar(); return 0; }
结果:
Q Hello! 14 64.21
Q
Hello!
14
64.210000
64.21
(四) 变量
C语言中把数据存储在变量(variable)中。
4.1 变量类型
名称 | 描述 |
char | 存放字符数据,如‘x’和‘*’ |
int |
存放整数数据,存放数据在-32768和23767之间 |
long int | 存放大于237767和小于-32768的整型数据 |
float | 存放浮点数,如0.003,-121.33 |
double |
存放极大和极小的浮点数,float只能存放 从-3.4*10^38 到 3.4*10^38 |
注意:C是少数几种没有字符串变量的一种编程语言
4.2 变量的命名
变量名可以包含1到32个字符,变量名必须以字母开头,后面是字母、数字或下划线的组合。
合法的变量: myData 、 pay94 、 age_limit 、 QtlyIncome
不合法的变量 : 94Pay 、 my age 、 rate*pay
说明: *是特殊符号不能用作变量名中
注意: C语言允许变量名以下划线开头,但是不建议这么做,因为C语言中的一些内置变量以下划线开头,如果自定义下划线开头的变量,可能会与内置函数重名。
4.3 定义变量
变量使用之前必须定义(define)。变量定义(也被成为变量声明,variable declaration)是为了让C语言知道你需要一个变量空间。格式为: 类型 + 变量名 。 例如:int age;
注意: 在函数内部的变量的是局部变量(local variable),在函数之前的变量称之为全部变量(global variable)。
4.4 变量中存储数据
赋值运算符(assignment operator)用来在变量中存放值。复制运算符只是一个等号(=)。
格式: variable = data;
例1: char initial;
initial = 'G'; /*Assigns values to three variables*/
例2:int numSold =25, numBought;
float val = 436.54;
注意:1,不要混淆数据类型和数据变量,避免把一种数据存储到另外一种数据类型的变量中。
2,如果可以,尽量使用局部变量,因为使用局部变量相对来说更加安全。
3,不要在数字中使用都号, 例如 300000, 不要写成30,000。
#include<stdio.h> main() { /*Defines a different variable for each data type*/ char priceCode = 'J'; int quantity = 100; long int wholeSaleQuant = 450000; float price = 13.54; double sales = 9845443.234; return 0; }
(五) 字符串 (使用字符数组)
C语言没有字符串变量,需要向其他的办法来存储字符串数据。
5.1 字符串结束符
C语言中对每一个字符串的末端加上了一个零。
字符串末端的零有以下几个名字:
1,Null零 2,二进制零 3,字符串结束符 4,ASCII零 5,\0
警告:字符串末端用的零既不是普通的数值零也不是字符'0',只有null零出现字符串的末端。在内存中,只有当C程序遇到null零才知道字符串结束了。
5.2 字符串的长度
字符串的长度是指最大的字符数,但不包括null零。计算字符串长度时,null不能算在内。
以下字符串长度都是9:
August 10 和 Batter up
注意:数据中所有单个字符长度都是1. ‘X’和“X”长度都是1,但是“X”占用了两个字符,因为他带有null零。
6.3 字符数组:字符的列表
字符数组(charactor array)在内存中存放字符串。数组是一种特殊的数据类型。
例如: char month[10] = "January"; /*Defines a character array*/
说明:
1,数组中每个单元成为元素(element).打印数组 printf("The month is %s", month);
2,数组初始化有两种方式:1)char month[8] = "January"; 2) char month[] = "January";
6.4 初始化字符串
在没有学习指针之前,如果想对一个数组变量赋值一个新的字符串有两种总方式对字符串进行赋值。
1,给定的字符数组,然后依次一个字符赋值。
2,使用C编译器带的strcpy()函数(字符串赋值)来实现。例如:
strcpy(month, "Apirl");/*Puts new string in month array*/
说明:使用strcpy(),必须增加一个#include <string.h>,;strcpy()会自动在字符串末尾增加null零
注意:
1,只有当字符数组含足够多的元素用于存放字符串时,才能吧字符串放到字符数组中
2,数组下标从0开始。
3,如果字符数组没有为结尾的零预留足够的元素,C语言将不能正确处理字符串。
相关推荐
【C语言学习笔记】 C语言是一种强大的编程语言,它的学习笔记涵盖了从基础知识到高级特性的全方位内容。在学习C语言时,首先需要了解文件类型,如C语言的源文件通常以`.c`为扩展名,而C++源文件是`.cpp`。头文件`.h...
本压缩包“C语言学习笔记.zip”包含了丰富的C语言学习资料,主要集中在“c-notes-master”这个子目录下,适合初学者和有一定基础的程序员进行深入学习。 在C语言的学习中,首先要掌握的基本概念包括变量、数据类型...
本压缩包包含的“C语言学习笔记”是一份详尽的C语言学习资料,旨在帮助读者深入理解和掌握C语言的基本概念、语法结构以及实际应用技巧。 一、C语言基础 C语言的基础包括变量、数据类型、运算符、流程控制等。变量...
谭浩强C语言学习笔记 这是一本关于C语言的学习笔记,涵盖了从基本概念到高级应用的所有方面。...这本笔记涵盖了C语言的方方面面,既有基本概念也有高级应用,是一本非常详细和系统的C语言学习笔记。
本压缩包包含了一份精心整理的C语言学习笔记,旨在帮助读者深入理解和掌握C语言的核心概念与技术。 笔记首先从基础语法开始,包括变量、数据类型、运算符以及表达式。C语言中的数据类型有基本类型如int、char、...
### C语言学习笔记知识点梳理 #### 一、C语言中的函数 C语言中的函数是程序设计的基本单位之一,主要用于组织代码、实现特定功能并能够被重复调用。 1. **函数分类** - **库函数**:由系统提供的标准函数,如`...
C语言学习笔记C语言学习笔记
C语言学习笔记 必看知识点 精品啊 值得看
本学习笔记旨在全面覆盖C语言的基础部分,帮助初学者掌握其核心概念和语法。 一、C语言概述 C语言由贝尔实验室的Dennis Ritchie在1972年创造,它的特点是运行效率高,程序控制性强,语法简洁。C语言是许多现代编程...
C语言学习笔记,C语言学习笔记,qsort排序。。。。。。。。。。。。。。。。。。。。。。。。。。。。
### 郝斌老师C语言学习笔记 #### 一、终端基础命令 郝斌老师的笔记首先介绍了几个常用的终端命令,这些命令对于操作文件系统至关重要。 - **pwd**:此命令用于显示当前工作目录的完整路径。 - **ls**:列出当前...
### C语言学习笔记知识点梳理 #### 一、计算机系统概述 **1.1 计算机系统功能** - **输入**: 将外部数据输入到计算机系统中。 - **处理**: 数据通过程序处理后生成新的数据。 - **输出**: 处理后的数据输出到外部...
嵌入式C语言学习笔记 本文总结了嵌入式C语言学习笔记的要点,涵盖了运算符优先级、指针的用法、二分法查找、字符串操作、冒泡排序法、寻址方式、存储区域、volatile含义及应用等多个方面。 一、运算符优先级 在...
在C语言学习中,了解内存管理、数据类型、输入输出函数...以上就是C语言学习笔记第一课中的主要知识点。学习C语言时,理解并熟练运用这些基础知识是编写程序的关键。通过不断地练习和实践,可以更好地掌握C语言的精髓。
这些是C语言学习的基础知识,理解并掌握它们对于编写有效的C语言程序至关重要。通过深入学习和实践,你可以进一步探索指针、数组、结构体、文件I/O等更高级的主题,从而成为C语言的熟练开发者。
本资源包"**C语言学习笔记——基础知识篇**"是为C语言初学者或需要复习C语言概念的人准备的宝贵资料。 首先,我们要了解C语言的基础知识。C语言的语法结构基于ALGOL60和BCPL,由Dennis Ritchie在贝尔实验室设计和...
C语言是一门面向过程的、抽象化的...尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
本文档是一份C语言学习笔记,涵盖了C语言的基本概念、数据类型、运算符、控制结构、函数等内容。 1. 第一个C程序 C语言的第一个程序是Hello World程序。该程序使用#include "stdio.h"指令包含标准输入/输出库,...