HelloWorld
Hello.c
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}
输出
printf("Hello World!\n");
""
里面的内容叫做字符串,printf
会把其中的内容原封不动地输出\n
表示需要在输出的结果后面换一行- 注意:写代码时最好在英文状态下输入,因为除了字符串中的内容外,代码中的标点都是英文标点,不能写成中文的标点!
输出与计算
printf("%d", 12 + 34);
%d
说明后面有一个整数要输出在这个位置上- 四则运算:
四则运算 | C符号 | 意义 |
---|---|---|
+ | + | 加 |
- | - | 减 |
× | * | 乘 |
÷ | / | 除 |
% | 取余 | |
() | () | 括号 |
%
表示取两个数相除以后的余数
变量
int price = 0;
- 这一行,定义了一个变量。变量的名字是
price
,类型是int
,初始值是0
。 - 变量是一个保存数据的地方,当我们需要在程序里保存数据时,就需要一个变量来保存它。用一个变量保存了数据,它才能参加到后面的计算中。
- 变量定义的一般形式就是:
类型名称 变量名称;
int price;
int amount;
int price, amount;
变量名
- 变量需要一个名字,变量的名字是一种“标识符”,意思是它是用来识别这个和那个的不同的名字。
- 标识符有标识符的构造规则。基本的原则是:标识符只能由字母、数字和下划线组成,数字不可以出现在第一个位置上,C语言的关键字(保留字)不可以用做标识符。
- 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, inline, restrict
赋值与初始化
int price = 0;
- 这一行,定义了一个变量。变量的名字是
price
,类型是int
,初始值是0
。 price = 0
是一个式子,这里的“=”是一个赋值运算符,表示将“=”右边的值赋给左边的变量。
赋值
- 和数学不同,a=b在数学中表示关系,即a和b的值一样;而在程序设计中,a=b表示要求计算机做一个动作:将b的值赋给a。关系是静态的,而动作是动态的。在数学中,a=b和b=a是等价的;而在程序设计中,两者的意思完全相反。
初始化
- 当赋值发生在定义变量的时候,就是变量的初始化。虽然C语言并没有强制要求所有的变量都在定义的地方做初始化,但是所有的变量在第一次被使用(出现在赋值运算符的右边)之前应该被赋值一次。
- 如果没有初始化,变量的值就是内存中的一个随机值。
变量初始化
类型名称 变量名称 = 初始值;
int price = 0;
int amount = 100;
- 组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值,如:
int price = 0, amount = 100;
表达式
- “=”是赋值运算符,有运算符的式子就叫做表达式。
price = 0;
change = 100 - price;
变量类型
int price = 0;
- 这一行,定义了一个变量。变量的名字是
price
,类型是int
,初始值是0
。 - C是一种有类型的语言,所有的变量在使用之前必须定义或声明,所有的变量必须具有确定的数据类型。数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据,程序运行过程中也不能改变变量的类型。
- 注意:C99可以在任意地方定义变量;而传统的ANSI C只能在代码开头的地方定义变量。
输入
scanf("%d", &price);
- 要求
scanf
这个函数读入下一个整数,读到的结果赋值给变量price
- 注意:
price
前面一定要加&
!
常量
int change = 100 - price;
- 固定不变的数,是常数。直接写在程序里,我们称作直接量(literal)。
- 更好的方式,是定义一个常量:
const int AMOUNT = 100;
const
const
是一个修饰符,加在int
的前面,用来给这个变量加上一个const
(不变的)的属性。这个const
的属性表示这个变量的值一旦被初始化,就不能再修改了。int change = AMOUNT - price;
- 如果你试图对常量做修改,把它放在赋值运算符的左边,就会被编译器发现,指出为一个错误。