程序设计与C语言
计算机做的事情都是计算。因为CPU就是只会计算。
我们人类写的所谓的程序代码并不是二进制,所以计算机也不能直接识别。所以需要下面的程序:
但是非常容易产生一个误解就是:很多人认为某种语言是解释语言,而另一种是编译语言
但其实:
任何一种计算机语言既可以解释执行也可以编译执行,语言本身是没有解释和编译的区分的。
那解释和编译的区别是什么呢?
现代语言的语法差异较小,语言的能力和适用领域主要是库和传统所决定的。
C语言的标准
参考:http://c.biancheng.net/view/143.html
变量
初始化
虽然C语言并没有强制要求所有变量必须在被定义的地方做初始化,但是所有的变量在第一次被使用(出现在赋值运算符的右边)之前应该被赋值一次。
表达式
有运算符的式子就是表达式,比如上面提到的赋值运算符
在C语言中,赋值运算符也是一个运算符而不是像有的编程语言中,是一个特殊的语句,也就是赋值运算符是会返回结果的。
前缀和后缀运算符++和--
不管是a++还是++a都会做一件事就是a的值加1,
变量类型
C语言是有类型的语言,数据类型表示在变量中可以存放什么样的数据。变量中只能存放指定类型的数据,程序运行过程中也不能改变变量的类型。
整数、浮点数和定点数、
10/3.0*3 -> 10.0
C语言没有bool类型,所以用0和1来代替false和true,
Scanf
scanf函数的双引号内是期望用户输入的内容,并且必须完全一样,这和printf不一样,printf是输出的内容。
//比如下面的程序就必须要接收到price才行
int main()
{
int a = 0;
int b = 0;
scanf("price%d %d", &a, &b);
printf("%d %d\n", a, b);
运算符优先级
逻辑运算符短路
如果右边有赋值的话需要注意,如果左边成立,右边赋值就不会运算了,所以不要把赋值包括复合赋值组合进表达式
条件表达式和逗号运算符
逗号也是一个运算符,用处就是for循环条件中,可以用逗号隔开,定义多个变量
常量
使用 const 声明常量,常量在声明时就需要被初始化,因为它不能再被赋值,不然的话这个常量就没有明确的值。