计算机语言之C语言

来源:互联网 发布:淘宝卖冰怎么搜 编辑:程序博客网 时间:2024/06/05 15:06
C语言是基于B语言发展而来,语法与js很多相似的地方,例如:判断,运算,循环等不同点:定义变量不可以被修改类型,初始化变量时定义变量类型,例如:int,doubleC语言有scanf("%d",&n);//输入      printf("%d",n);//输出

使用方法:

1.先引入标准库 #include <stdio.h>2.int main(){    //...    return 0;}

知识总结:

运算 :++n,n++,+ - * / %判断:if else if else , swatch..case循环:while, do..while, for tips:循环中如果有固定次数用for,如果必须执行一次用do..while,其他情况使用while整数类型:char,short,int,long,long浮点数:float,double,long double逻辑:bool指针自定义类型逻辑运算符:!&& ||,运算符短路逻辑:&&,||,&&左边false右边不做,||左边true,右边不做在使用bool之前需要#include <stdboool.h>封装函数:目的:代码重用,减少复制粘贴,可维护性高函数的定义:函数头,函数主体,如果有返回值return 停止并加上返回值注:void 表示类型什么都不返回函数的调用:函数调用与js类似,viod 代表没有返回类型数组:int number[100]  单元类型 数组名称 元素数量(下标,索引)  注:数组定义后无法改变类型和大小数组长度:       int count = sizeof(数组) / sizeof(数组[0]) // 数组的长度 = 数组占用的总字节数 / 数组元素占用的字节数&运算符,作用:取地址变量是保存在内存中的左值:表达式运算的结果指针:保存地址的变量;int *p *p就是指针,作用:修改其他函数内部变量的值。应用:交换两数值,寻找最大值,计算两数字之计算结果注:任何一个地址变量未得到任何实际变量地址前不能访问任何变量或数据。函数参数列表中 int a[]等价于 int *a数组变量是特殊的指针(const),数组本身不需要&取地址,但是数组元素需要使用&取地址字符串:又称为字符数组,以数组形式存在eg: char word[]={"H","e","l","l","o","\0"};注:最后一个\0结尾不可省略,计算字符串长度时不含0两个字符串自动连接,",""",无需和java,js + 或者php .进行两个字符串拼接,70年代的C语言只关注数字,而80年代java,python开始关注文字,字符串既可以是数组,也可以是指针,数组:字符串在这,作为本地变量自动被回收,指针:字符串位置不明确,处理参数,动态分配空间总结:当构造字符串时用数组,当处理字符串时用指针字符串的输入与输出:    eg:char string[8]    scanf("%7s",string);    printf("%7s\n",string);    以上7代表最多为7个“”代表空字符串int main(int argc,char const *argv[])字符串函数    int putchar(int c);    EOF(-1)表示写失败键盘->shell->屏幕    <-    <-shell为缓冲区,将用户输入进行行编辑进入缓冲区,当按下回车时给屏幕显示常用的字符串函数:strlen,strcmp,strcpy,strcat,strchr,strstr注:#include <string.h> 必须先引入string函数库枚举:常量符号化eg:enum color{red,yellow,green,colorNum}枚举量枚举比宏好,枚举有int类型,作用:定义符号量程序结构    全局变量:作用域,定义在全局,任何函数内部可以访问,    局部变量:函数内部定义的变量,只在当前作用域内有效,无法修改影响全局变量    ——func——返回当前函数名,全局变量初试默认值为0.    本地变量:        静态本地变量:变量前加(static)关键字保存上次函数退出时的变量值,        定义在函数内部的全局变量,拥有全局生存期,本地作用域,    注意:应避免使用全局变量和静态本地变量,对于多线程来说不安全宏:预处理替换,不用分号结尾,#define定义一个宏    #define PI 3.14159    注:不能使用分号结尾,宏可以在后面加注释,宏与宏之间可以互相使用没有值的宏变量#define _DEBUG 条件编译预定义的宏:_LINE_,_FILE_,_DATE_,_TIME_,_STDC_像函数的宏    #define cube (x)((x)*(x)*(x))大程序结构:    多个.c文件,一个功能一个.c    函数的原型放在.h中    一个.c对应一个.h    系统标准库<>,自定义头文件"XXX.h"    全局变量所有c文件共享    static变量或者函数只有当前.c文件可以使用目录结构:    MAX      mian.c      max.c      max.h变量声明:int i;//变量定义 extern int i;//变量声明头文件(.h)中声明变量include 插入引用标准头文件结构:#ifndef _ListHeader_             #define _ListHeader_             //代码段             #endif作用:只定义一个宏,避免头文件重复引用格式化输入输出:scanf,printf%d整数, %f浮点数文件输入输出 <>重定向输入<  >输出fopen打开文件,fclose关闭文件二进制文件:所有文件都是二进制的,文本文件是可读写的二进制文件文本VS二进制    unix 文本    windows DOS 二进制文件文本    优点:便于人类读写,快平台    缺点:程序输入输出格式化开销大二进制    优点:程序读写快    缺点:读写困难,不跨平台二进制读写:fread 读 fwrite 写fseek(fp,OL,SEEK_END);定向到最后long size=ftell(fp);二进制文件大小fseek(fp,index*sizeof(student),SEEK_SET)定向到开头按位运算    &按位与:两数都为1为1,否则为0    |按位或:两数有一个1就为1,否则为0    ~按位反:把1变成0,0变成1    ^按位异或:两数不相等为1,否则为0    左移:后补0    友移:前补0或者补高位,unsigned 前者,signed 后者左移一位 *2   两位 *4   n位  *2^n1<<2 1001<<3 1000移位时不要使用负数段位:struct{    unsigned int leading:3}特点:无移植性,超过一个int,变成2个int应用:操作硬件
原创粉丝点击