下列代码,
#include
int main()
{
printf("Hello World! \n");
return 0;
}
在终端进行编译使用以下步骤:
gcc -o 1-1 1-1.c
,编译c语言程序,完成预处理-编译-汇编-链接,生成可执行文件。
./1-1
,在Linux终端输入可执行文件的文件名可运行该文件。
常见的Linux版本:Ubuntu、CentOS、Deepin
.o
,在Windows中为.obj
。gcc -c 1-1.c
.exe
。gcc - o 1-1 1-1.c
。printf()
函数printf()
,例如printf("%d, %d", a, b)
。
scanf(格式控制,地址表列)
,地址表列是由若干地址组成的表列,可以是变量的地址
/* */
,或者//
。
变量的名字便是一种标识符。
为什么在用计算机运算时,需要指定数据的类型呢?
——在数学中,数值是不区分类型的,数值的运算是绝对准确的,例如:1/3 的值是 0.33333…(循环小数)。数学是研究抽象的学科,数和数的运算都是抽象的。而在计算机中,数据是存储在计算机中的一个个单元里面,它是具体存在的。而且,存储单元是由有限的字节构成的,每一个存储单元存储的数据是有限的,不可能存放无限大的数,也不能存放无限循环小数
unsigned int
取值范围为 0 —— 2 31 − 1 0 ——2^{31}-1 0——231−1。为什么将实数称为浮点数?
——只要在小数点位置浮动的同时改变指数的值,就可以保证它的值不会改变。由于小数点的位置可以浮动,所以实数的指数形式称为浮点数。
浮点类型:
FLT_MIN
和FLT_MAX
。DBL_MIN
和DBL_MAX
。字符型数据在存储时,并不是把该字符本身存放到内存单元中,而是把该字符相应的 ASCII 码值存放到该存储单元中。
例如:
#include
int main()
{
char a, b;
a = 'c';
b = 121;
printf("%c, %c\n", a, b);
printf("%d, %d\n", a, b);
return 0;
}
输出:
c, y
99, 121
以字符形式输出时,先将存储单元中的 ASCII 码转换成相应的字符再输出;以整数的形式输出时,直接输出其 ASCII 码。
也可以对字符数据进行算术运算,例如:
#include
int main()
{
char a, x;
int b;
a = 'c';
b = 1;
x = a + b;
printf("%c\n", x);
printf("%d\n", x);
return 0;
}
字符串常量是用一对双引号括起来的零个或多个字符组成的序列,如 “hello”,“China”,“b” 都是字符串常量。
字符串中的每个字符占用一个字节,在存储字符串常量时还要自动在其末尾加上 ‘\0’ 作为字符串结束的标志。因此b’ 和 “b” 是完全不同的。前者是字符常量,在内存中占用的字节数为 1;而后者是字符串常量,在内存中占用的字节数为 2,包含字符 ‘b’ 和 ‘\0’。
注意:在 C 语言中没有专门的字符串变量,如果你想要将一个字符串存放在变量中,必须使用字符数组,数组中每一个元素存放一个字符。
理解i++
和++i
的作用即可。
注意: 自增运算符 (++) 和自减运算符 (–) 只能用于变量,而不能用于常量或表达式。
字符 (char) 型数据和整型数据进行运算,就是把字符的 ASCII 代码与整型运算。反之和浮点类型也是。
例如字母大小写转换,大小写相差32。
#include
int main()
{
// 将大写字母转换为小写字母
char c1, c2;
scanf("%c", &c1);
c2 = c1 + 32;
printf("%c\n", c2);
return 0;
}
一般形式(类型名) (表达式)
。
在强制类型转换时,得到一个所需类型的中间数据,而原来变量的类型未发生变化。
编译时需要注意,在 Linux 系统下,C 源文件若调用了 math 库里的函数,则编译时要加上 -lm
(是字母 l ,不是数字 1),表示链接到 math 库。
下面的一个例子:
#include
#include
int main()
{
double a, b, c, disc, x1, x2, p, q;
scanf("%lf%lf%lf", &a, &b, &c);
disc = b*b - 4*a*c;
p = -b / (2.0 * a);
q = sqrt(disc) / (2.0 * a);
x1 = p + q, x2 = p - q;
printf("x1 = %7.2f\nx2 = %7.2f\n", x1, x2);
return 0;
}
解释上面的例子:
在 printf 函数中,不是简单地用 “%f” 格式声明,而是在格式符 “f” 的前面加了 “7.2”。表示的意思是在输出 x1,x2 时,指定数据占 7 列,其中小数占 2 列。
除了printf()
和scanf()
之外输入输出字符,还可以使用putchar()
输出, getchar()
输入,
例如大小写转换,
#include
int main()
{
char a,b;
a = getchar();
b = a + 32;
putchar(b);
return 0;
}