⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 这是一部学习C的最好教程,相信这对那些初学者有很大帮助
💻
字号:
1)变量的定义
1.static 
      用static修饰的变量是静态变量,在程序的整个执行期都一直存在。静态变量在编译时被赋值,如果未赋初值,则在编译时系统自动给以赋初值0(int类型)或者空字符(字符类型)
2.register
      用register修饰的变量称为寄存器变量,它是将变量值存放在CPU的寄存器中。只有局部自动变量和形参才可以定义为寄存器变量。
3.extern      
      用extern修饰的变量是外部变量,即全局变量,它指的是某变量已在程序的外部定义了,现被引用到当前文件中来使用。它的作用域是从定义处开始到文件的结束。 
      

2)预处理命令      
      在程序的源文件中,使用这些由#define,#include定义的语句,都是放在函数的外面,而且一般都放在源文件的前面,他们称为预处理命令
1.无参宏      
      此类宏是这样的定义的
      #define  标识符  字符串
      #define  M       (X+Y)
2.带参宏      
      #define 宏名(形参表)   字符串
      #define M(5)     y*y+3y
      k=M(5)
      k=5*5+3*5;
      
3)文件包含      
      #include "studio.h";  先在当前源文件目录中查找,若找不到,再找系统环境变量设定的文件包含目录
      #include <studio.h>;  在系统环境变量设定的文件包含目录中查找包含文件
      
4)条件编译
1.      
      #ifdef   标识符
         program1;
      #else
         program2;
      #endif
      如果标识符被#define定义过,则在程序被编译时编译program1部分,若无,则编译program2部分
      #define WINDOWS ok     //在这里WINDOWS被定义成什么值无所谓#define WINDOWS与之等效
      int def = 0;
      #ifdef WINDOWS
         def=1;
      #else
         def=100;
      #endif

2.      
      #ifndef   标识符
         program1;
      #else
         program2;
      #endif

3.
      #if    常量表达式
         program1;
      #else
         program2;
      #endif
      常量表达式在为真(非0)情况下,编译program1部分

5)指针      
1.字符串指针变量
      char *ps = "C program";
      char *ps; *ps = "C program";
2.函数指针变量
      表示该变量是一个指向函数入口的指针变量,“类型说明符”指的是该函数的返回类型,()表示这是一个指身函数的指针变量
      类型说明符 (*指针变量名)();      
3.指针型函数      
      一个函数返回一个指针类型
      类型说明符  *函数名(形参表){};
      char *returnPoint(char *p){
         printf("%s \n",p);
         return p;
      }
      main(){
         char *returnPoint(char *p);
         char *p = "hello,World";
         returnPoint(P);
      }

4.指针数组      
      char *cal[]={"no value",
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday",
      "Saturday",
      "Sunday"};
      char *ps;
      
      
6)结构体与共用体
      struct student stu1 = {"w",1};
      struct student *st;
      st = &stu1;
      st->name;
      st->num;
      
      //节省时间与空间
      void ave(struct student *stu){
         ......
      }
      struct student *s;
      ave(*s);
      
      //链表
      stu1->next = stu2;
      stu2->next = stu3;
      
      //枚举类型
      枚举本身是常量,而不是变量,所以不能对它进行赋值,枚举元素本身由系统定义了一个表示序号的值,由0开始
      enum weekend{sun,mon,tue,wed,thu,fri,sat};
      enum weekend a,b,c;
      a = sun;
      printf("%d",a);  //return 0;
      
      //typedef
      typedef 原类型  新类型
      类似于define
      
7)位运算

      struct data{
         int a:4;
         int b:4;
         int c:2;
      };
      struct data bit;
      这样bit.a只占4个位域,bit.c占两个位域
      
      
7)文件访问
      FILE *fp;
      fopen(文件名,使用方式);
      fclose(fp);
      fgetc(fp);
      fputc
      fgets
      fputs
      fread
      fwrite
      rewind(fp);  将文件内部指针指向文件的开头
      fseek(fp,100L,0);			移动文件内部指针到指定的位置,一般用于二进制文件,用在文本文件时要进行转换
      在文件的随机读写里,一般使用这么几个函数fread,fwrite,rewind,fseek
      feof(fp)  判断文件是否处于文件结束位置
      ferror(fp)  判断文件在读写时是否出现错误
      clearerr(fp)   清楚文件结束标志和出错标志,使之为0
      
      

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -