C语言学习必备笔记(持续更新中)

一、了解C和编程

编程的步骤

1.清晰定义程序的目标。2.设计程序。3.编写代码。4.运行。5.debug。

有时候编程并非一个线性的过程。但磨刀不误砍柴工,应该养成先规划再动手编写代码的好习惯,用纸和笔记录下程序的目标和设计框架。——《C Prime Plus》

C的示例

#include <stdio.h>   //头文件
int abc();
void  main(){    //main函数总是第一个被调用的函数
    abc();      //调用函数。
    printf("111");    
}
int abc(){    ......}

二、基本语法介绍

2.1 变量与常量

与Java语法类似。在Java基本知识中作者就不再过多赘述。

  • 变量

<类型名称> <变量名称(标识符)> = <初始值>

例:int price=0 (定义了一个变量,名字是price,类型是int,初始值是0。)
注意:=表示赋值,表示将右边的值赋给左边。

  • 常量
    例: int a=100-price
    100就是常量。更好的方式是定义一个常量 ,如下:
    const int amount=100
    const它限定一个变量不允许被改变,产生静态作用。
  • 表达式
    表达式包含 运算符 和 算子,运算符是动作,算子是参与运算的值。
    单目运算符 只有一个 算子, 双目运算符 有两个 算子。

2.2 scanf与printf,float与double

printf:打印到显示器
scanf:键盘输入一个数值 , 例如:scanf("%d",&price)
注意:出现在scanf内的东西是一定要输入的东西。
float/double
整数运算结果只为整数,将 int 改为 double/float就为浮点数。(10->10.0)
注意:使用浮点数时,printf都用 %f 类型。
用 double 时,scanf 应该用 %lf 类型。
用 float 时,scanf 用 %f 类型。

2.3 运算符

优先级: 单目>运算>关系>逻辑>条件>赋值

  • 单目运算符

    ++-- 让变量加1(++)或减1(–)。
    注意:++和–是特殊的单目运算符。叫做递增递减运算符。
    表达式 c=count++ 作用:给count+1,但是表达式c是count原来的值。
    表达式c=++count 作用:给count+1 ,而且表达式c= count+1。
  • 算数运算符 (加减乘除)
  • 关系运算符
    == 相等
    != 不相等
    <= 小于等于
    >= 大于等于
    注意:关系运算符的输出为0或1。判断是否相等的==和!=优先级比其他关系运算符低。
  • 逻辑运算符
    与、或、非(&&、||、!)
    注意:对逻辑量进行的运算,结果只有0或1。
    短路:逻辑运算是自左向右的。如果左边已经可以决定结果,就不用计算右边。&&,如果左边是false,右边不计算。‖,如果左边是true,右边不计算
  • 条件运算符
    例:a>b?b:a
    如果a>b那么是b否则是a。
  • 复合赋值运算符
    += -= *= /=
    例:total+=3 就行total=total+3
  • 逗号运算符
    优先级最低,多用于for循环。
    例:i=(3+4,5+6),右边的表达式做结果。i=11。

2.4 条件与循环

//if与else条件
if( 条件  ){
    
}else{    }

if( 条件  ){     }
else  if( 另一条件 ){ 
   }
 //while   do-while  循环
while(条件){   循环体    }
do{
}while();
  • for循环(重要)

像一个计数循环,设定一个计数器,初始化它,之后在计数器达到某值前重复执行循环体,而每一轮循环,计数器以一定步进调整。

语法:for(初始条件(循环控制变量);循环继续的条件;循环控制变量修改条件){ }
例:for( i=1; i<=n;i++;)
解释:for循环执行步骤,先执行i=1,之后执行i<=n,若成立,执行循环体,最后执行i++。
小套路:求和时,记录结果的变化量应初始化为0。求积时,计录结果的变化量应初始化为1。

2.5 Switch-case

//语法
switch(控制表达式){
case 1:{
printf("      ")break;}
default:        //都不满足case时
printf("   ")
break}
  • break与continue
    ->遇到break跳出整个循环,进入下一个循环。
    ->遇到continue跳过接下来的循环,继续循环。
  • 提出一个小技巧
    x%10 得到x的个位。做x/10 可去掉个位。>>>除以100呢?1000呢?
    x%n 可获得[0,n-1]的数。

暂时结束语

自我见解:
在学习时,应多动手上机敲代码,自己多找一找题练习。(推荐C prime plus这本书)千万不要好高骛远,只有自己动手才知道自己掌握如何,也不要认为自己看一节课就会了,一定要实践,实践出真知!!!
如果仅仅有输入知识的过程,没有输出知识的过程,学习是极其低效的。

MOOC的Java学习连接
如果已经看过C的课,可以看一看翁恺老师的Java基础课,大部分和C的一样,只不过有一些小的细节和语法不同。当作二次练习。

2.6 数组

  • 定义数组
    <类型> 变量名称 [元素数量]
    int a [5]
  • 数组的集成初始化
    int b[3]={1,2,3}int count[5]={0},count数组每一项元素都为0。
  • 数组的遍历
int a = [5];
for(i=0;i<5;i++){ 
  a[i]=1;
  }
  a[5]=1;      // error,应保证只使用有效的下标值[0,数组的个数-1]。
  • 二维数组的遍历
//i行j列
for(i=0;i<3;i++{
    for (j=0;j<5;j++){  
       a[i][j]=1;    //是单独的一个整形变量。
       }
   }
  • 二维数组的集成初始化
//表示一个2行5列的数组,c语言中数组的列数必须给出。
int a[][5] =  {   {2,3,4,5,6}{1,2,3,4,5}};
      **(持续更新中。。。)**

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>