「c语言」学习笔记

前言

c语言是万物之源 🤪

语法篇

程序框架

#include <stdio.h>
int main(){
  return 0;
}

常量与变量

  1. 常量

    • 整型常量 - 如1,123,0,-7

    • 实型变量

      1. 十进制小数形式 - 由数字和小数点组成,如1.2
      2. 指数形式 - 以字母e或E为底,如12.345e2(代表12.345乘10的二次方),12.345e-2(代表12.345乘10的负二次方)
    • 字符变量

      1. 普通字符
      2. 转义字符
    • 字符串常量 - 用双引号括起来的若干字符,「单引号只能包含一个字符,双引号可以包含一个字符串」

    • 符号常量 - 用#define指令

      #define PI 3.1416
      
  2. 变量

    • 先定义,后使用
  3. 常变量 - 关键字const

    const int a = 1;
    
  4. 标识符

数据类型

  • 整数 - char、short、int、long、long long
  • 浮点型 - float、double、long double
  • 逻辑 - bool
  • 指针
  • 自定义类型

存储类 - 定义变量/函数的范围(可见性)和生命周期

  • auto - 所有局部变量默认的存储类
  • register - 用于定义存储在寄存器中而不是 RAM 中的局部变量
  • static - 指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁
  • extern - 用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的

运算符

算术运算符

  • + - * / % ++ --

关系运算符

  • == != > < >= <=

逻辑运算符

  • && || ! (与或非)

位运算符

赋值运算符

  • = += -= *= /= %= <<= >>= &= ^= |=

杂项运算符

  • sizeof() - 返回变量的大小
  • & - 返回变量的地址
  • * - 指向一个变量
  • ?: - 条件表达式
#include <stdio.h>
int main(){
    int a = 1;
    double b = 2.12;
    int* ptr;

    ptr = &a;
    printf("变量a的值是:%d\n",a);
    printf("变量b的值是:%f\n",b);
    printf("变量a的大小是:%lu\n",sizeof(a));
    printf("变量b的地址是:%d\n",*ptr);
}

判断

  • if 语句 if(){}
  • if…else 语句 if(){}else{}
  • 嵌套if语句
  • switch 语句 switch(){case...case...default:...}
  • 嵌套switch语句
  • 三元运算符 ? :
#include <stdio.h>
int main(){
  	// if...else...
    int a = 10;
    if(a<20){
        printf("a小于20 - %d\n",a);
    }else{
        printf("a大于20 - %d\n",a);
    }
		// switch
    int grade = 80;
    switch(grade){
        case 90:
            printf("牛逼,90分!\n");
            break;
        case 80:
        case 70:
            printf("不行啊,还要加油!\n");
            break;
        case 60:
            printf("不能再摸鱼了,得支棱起来啊!\n");
            break;
        default:
            printf("无效的成绩\n");
    }
  	// ? = 
  	int num = 5;
  	(num>10)?printf("这个数大于10\n"):printf("这个数小于10\n");
  	return 0;
}

循环

  • 循环类型
    • while循环 while(condition){}
    • for循环 for(init;condition;increment){}
    • do…while循环 do{}while()
    • 嵌套循环
    • 无限循环 for( ; ; ){}
  • 循环控制语句
    • break - 终止循环或switch语句
    • continue - 立即停止本次循环迭代,开始下次循环迭代
    • goto - 将控制转移到被标记的语句
#include <stdio.h>
int main(){
  int a = 1;
  // while
  while(a<5){
    printf("a的值:%d\n",a);
    a++;
  }
  // for
  for(a;a<5;a++){
    printf("a的值:%d\n",a);
  }
  //do while
  do{
    printf("a的值:%d\n",a);
    a++;
  }while(a<5);
  // 无限循环
  for( ; ; ){
      printf("该循环会永远执行下去!\n");
  }
  
  return 0;
}

函数

  • 每个c程序都至少有一个函数,即主函数main()

  • c语言的函数定义一般形式

    return_type function_name(parameter list){
      body of the function
    }
    
  • 函数的组成部分

    • 返回类型 - return_type是函数返回值的数据类型,如不返回值,则为void
    • 函数名称
    • 参数 - 参数可选,可不填入
    • 函数主体 - 函数主体包含一组定义函数执行任务的语句
#include <stdio.h>

/*函数声明*/
int max(int num1,int num2){
    if(num1>num2){
        return num1;
    }else{
        return num2;
    }
}

int main(){
    int a = 1;
    int b = 2;
    int rel;
    rel = max(a,b);
    printf("%d",rel);
}

输入输出

  • printf()

  • scanf()

  • 格式符

    image-20210408105152534

#include <stdio.h>

int main(){
  float num;
  printf("请输入一个数:");
  scanf("%f",&num);
  printf("%f",num);
  return 0;
}

1492 字