写在前面:学习的第一门语言是Java,之前对C也了解一点,也只是了解一点,在加上长时间没有接触了,基本就只会一个Hello World了。现在由于准备升本考试,不得不从头开始学C。这里从零开始,记录C语言学习点滴。欢迎正在学习C语言的小伙伴一起学习,未来可期,一起加油!
Hello World程序
Hello World程序相信大家都不陌生吧。一般在学习一门新语言时都会从Hello World开始。下面是C语言版的Hello World程序。
#include<stdio.h>
int main(){
/* 注释 */
printf("Hello World \n");
return 0;
}
上述代码中:
/* 注释 */为对程序的注解说明,不影响程序的编译和运行。
#include<stdio.h>为编译处理命令,因为下面printf()函数是C语言提供的标准输出函数,在系统文件stdio.h中声明。
int main()为C语言的主函数,在C语言程序中都必须有而且只能有一个main()主函数,当程序运行时,首先从main()函数开始执行。
printf()为输出函数,可以将双引号中的内容原样输出,\n是转换符,即换行。
return 0;结束main()函数的运行,并向系统返回一个整数0,作为程序的结束状态。
常量、变量和数据类型
在C语言中,数据有常量和变量之分。在程序运行过程中,值不能改变的量称为常量。值可以改变的量称为变量。常量和变量都有类型。
常量定义:
#define 常量名 值
变量定义:
类型名 变量名;
类型名必须是有效的数据类型,变量名可以有一个变量名或由逗号间隔的多个变量名。
标识符:
C语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。标识符中英文字母的大小写形式是有区别的,比如sum和Sum的不同的标识符。
数据类型:
C语言中最常用的数据类型包括 int(整型)、char(字符型)、float(单精度浮点型)和double(双精度浮点型)。 其中float和double都是浮点型,用于存放浮点数,区别在于double型数据占用空间更大,精度更高,取值范围更大。
基本运算符
算术运算符:
基本算术运算符包括加、减、乘、除、取余。
在使用双目算术运算符时,需要注意一下几点:
- 如果对两个整型数据作除法运算,其结果一定是整数。
例:表达式10/4的值为2, 1/3的值为0。 - 取余运算符取整型数据相除的余数,它不能用于实型数据的运算。
例:表达式5%6的值为5, 9%4的值为1, 100%4的值为0(表示100能被4整除) - +和 - 还可以作为单目运算符,用于表示数值常量的符号,如+10和-10。
- 双目运算符两侧操作数的类型要相同,否则,系统自动进行类型转换,使它们具有相同的类型,然后在运算。
例:求解表达式10.0/4时,先自动将其转换为10.0/4.0,在算出其值为2.5。
自增自减表达式:
自增自减表达式,属于单目运算符,其作用就是使一个变量+1或-1。
定义一个变量a并附上初始值。
- ++a:先把a的值+1,然后将a的值作为表达式的值。
- a++:先把a的值作为表达式的值,然后将a的值+1.
- –a:先把a的值-1,然后将a的值作为表达式的值。
- a–:先把a的值作为表达式的值,然后在将a的值-1。
赋值运算符:
C语言将赋值作为一种运算,定义了赋值运算符=,它的作用是把一个表达式的值赋给一个变量,如 a = 100。赋值运算符的优先级比算术运算符低。
用赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。
赋值表达式的简单形式是:变量 = 表达式。
如:a = a*5;
常用的数学函数
C语言处理系统提供了很多事先编好的函数,这些函数称为库函数。所以,用户调用库函数时,一定要用#include命令将相应的头文件包含到源程序中。例如:调用输入输出函数,要加#include<stdio.h>;调用数学函数,则需要加入#include<math.h>。
常用的数学函数有:
- 平方根函数sqrt(x):计算根号X。如sqrt(4.0)的值为2.0。
- 绝对值函数fabs(x):计算| X |。如fabs(-3.12)的值为3.12。
- 幂函数pow(X,n):计算X的n次方。如pow(2, 3)的值为8。
- 以e为底的对数函数log(x):计算ln x。如log(123,45)的值为4.815836。
格式化输出函数printf()
输出函数printf()是系统提供的库函数,在系统文件stdio.h中声明,所以在源程序开始时要使用预编译处理命令#include<stdio.h>。
函数printf()的一般调用格式为:printf(格式控制字符串,输出参数1,…,输出函数n);
格式控制字符串需要用双引号括起来,表示输出的格式;而输出参数则是一些要输出的数据,这些数据可以是常量、变量或表达式。
格式控制字符串中包含两种信息,格式控制说明和普通字符。
① 格式控制说明:按自动的格式输出数据,包含以%开头的格式控制字符,不同类型的数据采用不同的格式控制符。
- “%d” 表示按十进制整数输出
- “%ld” 表示按十进制长整型输出
- “%c” 表示按单个字符型输出
- “%s” 表示按字符串输出
- “%f ” 表示按浮点型输出
②普通字符:在输出数据时,需要原样输出的字符。具体操作请往下看。
上述具体用法如下:
#include<stdio.h>
#include<math.h>
/* 定义一个常量 */
#define PI 3.14
int main(){
int r = 3, a = 4, b = 5, sum;
float f = 5.2, c, s;
/* 使用pow函数计算圆的面积 */
c = PI * pow(r, 2);
printf("圆的面积为: %f \n", c);
/* 计算a*b的值 */
sum = a * b;
printf("%d * %d = %d \n", a, b, sum);
/* 计算f*a+b的值, 因为f是浮点型,所以结果为浮点型 */
s = f * a + b;
printf("%f * %d + %d = %f \n", f, a, b, s);
return 0;
}
上述代码中基本都有注释,可以参考上面描述来看,运行效果如下:
C语言关键字:
C语言中总共有32个关键字(C语言中关键字不能做标识符):
auto | break | case | char | const |
---|---|---|---|---|
continue | default | do | double | else |
enum | extern | float | for | goto |
if | int | long | register | return |
short | signed | sizeof | static | struct |
switch | typedef | union | unsigned | void |
volatile | while |
转义字符
常见的转义字符及其含义
转义字符 | 意义 |
---|---|
\a | 响铃(BEL) |
\b | 退格(BS) ,将当前位置移到前一列 |
\f | 换页(FF),将当前位置移到下页开头 |
\n | 换行(LF) ,将当前位置移到下一行开头 |
\r | 回车(CR) ,将当前位置移到本行开头 |
\t | 水平制表(HT) (跳到下一个TAB位置) |
\v | 垂直制表(VT) |
\ | 代表一个反斜线字符’’ \ " |
’ | 代表一个单引号(撇号)字符 |
" | 代表一个双引号字符 |
? | 代表一个问号 |
\0 | 空字符(NUL) |
\ddd | 1到3位八进制数所代表的任意字符 |
\xhh | 十六进制所代表的任意字符 |
由于初学C语言,上述内容如有错误地方,恳请各位大佬指出!