C语言和C++是作为一名程序员必备技能,非科班出身的我对这些语言一直是一知半解,后来更是直接使用简单易上手的python,matlab语言。今天终于开始系统的学习了C了,记录一些学习笔记,方便后面查看,如有不妥,还请帮忙指正。
1. 文件开头
文件开头要加入:# include<stdio.h>,表示引入标准的C语言库,如果需要其他的库,则同样这样添加,如: # include<math.h>。程序的入口为main函数,写法如下:
int main(){
...
return 0;
}
2. 输入输出
输入用scanf,变量传入要用:&;输出用printf,直接用变量名。如:
scanf('hello,world! I am %d years old', &a)
printf('hello,world! I am %d years old', a)
3. 定义常量
定义常量有两种方式。两者子在使用时候没有什么不同,只不过早先时候为了节省内存,常用define(define其实就是预处理,只有在程序编译的时候才处理,这样内存的使用较低)。现在则更多使用const(因为预处理其实就是宏,当程序比较大的时候经常会出现各种奇怪的问题)
- #define Pi 3.1415926
- const double Pi=3.1415926
4. 变量的类型和转换说明符
5. 关系运算符和逻辑运算符及优先级
6. if 语句、switch语句、for 语句
if语句:
if(表达式){
语句1;
语句2;
...
语句n;
}
else{
语句;
}
switch语句:
switch(integer_expression){
case constant_1:
...
break;
case constant_2:
...
break;
...
default:
...
break;
}
for 语句:
for循环中的(循环开始时执行1次,循环条件,每次循环结束后执行),均可以不写在(;;)中。
例如:
#include<stdio.h>
int main(){
//方法1
int sum;
int i;
sum=o;
for(i=1;i<=100;i++){
sum=sum+i;
}
printf("sum= %d",sum);
//方法2
sum=0;
i=1;
for(;i<=100;i++){
sum=sum+i;
}
printf("sum= %d",sum);
//方法3
sum=0;
i=1;
for(;i<=100;){
sum=sum+i;
i++;
}
printf("sum= %d",sum);
//方法4
sum=0;
i=1;
for(;;){
sum=sum+i;
i++;
if (i>100){
break;
}
}
printf("sum= %d",sum);
return 0
}
7.递增与递减云算法
a++: 自加运算后算,再算表达式的值
++a:自加运算先算,再算表达式的值
8. 算法设计入门
- 有穷性:算法必须能在执行有限个步骤之后终止。
- 确切性:算法的每一步骤必须有确切的定义。
- 输入项:如键盘输入、文件输入的数据或算法本身定义的初始条件,以刻画运算对象的初始情况。
- 输出项:即程序对于输入数据加工后的结果,没有输出的算法是毫无意义的。
- 可行性:算法中执行的任何步骤都是可执行的操作步,即每个计算步都可以在有限时间内完成。