C/C++基础笔记

C:
1.主函数void,无返回值
2.头文件带后缀.h
3.使用命名空间
4.scanf和printf,指定格式,快;
    输入输出的格式可定制,输入中可以有\n
    scanf(“”,&)——char数组不用&;除%c外,空格和换行是结束的标志,%c可直接读入空格
    printf——“%%”、“\\”、可直接用printf(A >= B ? "A >= B" : "A < B")
    格式——%d(%nd右对齐,高位用空格补齐,总位数超过n位则不动;%0nd用0补位)、%lld、%lf(输入)、%f(输出%.nf保留n位小数,四舍六入五成双;四舍五入用round函数)、%c、%s
                四舍五入六成双——5后有数字进一;无数字前凑偶
5.单个字符:a=getchar();putchar(a);    
6.cstdio基于C++
7.字符串常量char str[25]=“”,输出str(%s)
8.ASCII码
9.‘’、“”
10.转义字符\n
11.布尔型stdbool.h
12.:输入输出都是double
        1.fabs(double x)取绝对值
        2.floor(double x)向下取整;ceil(double x)向上取整——注意正负——%.0f(感觉和%d一样)
        3.pow(double r,double p)返回r的p次方
        4.sqrt(double x)算术平方根
        5.log(double x)以e为底的对数;其他的用换底公式loga(b)=loge(b)/loge(a)
        6.sin(double x);cos(double x);tan(double x)参数是弧度值;1度=π/180弧度;π=acos(-1.0)
        7.asin(double x);acos(double x);atan(double x)结果是弧度值;
        8.round(double x)四舍五入;返回值是double——约到个数位
13.for(int i)写法不允许

ANSI C++:
1.主函数int,返回0值
2.头文件不带后缀.h
3.使用系统库时使用命名空间std
4.增加了字符串类型string
5.cin和cout慢;
6.布尔型直接用
7.for(int i)支持

计算机中:
1.运算符:
    除法:最少要换成一个浮点数,否则是整除(除数不为0)
    i++(先使i)、++i(后使i)——单独使用时无影响(好像比n+1快)
    A?B:C(A真则B,否则C)——printf(j < n ? " " : "\n");末尾不能有空格且换行
    位运算符:对二进制位进行操作
2.变量名:字母/下划线为首(其他数字可),区分大小写
3.整型:int——32bit(10的9次方)
    long long——64bit(10的10次方/18次方),值+LL
    unsigned
4.浮点型:默认六位
      float——6、7位
      double——15、16位
      直接用double
5.符号常量(确定就不变;一般用全大写)
    #define 标识符 常量(还有宏观的,一般不用;本质上是宏替换,这里恰好用来定义常量)
    const 数据类型 变量名 = 常量;(推荐)
6.复合赋值:+=、/=(加快编译速度、提高代码可读性)
7.注释:/* */;//
8.typedef起别名;typedef 原名 别名;
9.选择结构
       1.    if(){
        } else if(){
        } else{
        }
        小技巧if(n)等同于if(n!=0);写法更简单(不一定非要1)
    2.分支条件较多时
        switch(){
            case 常量表达式:
                break;
            default:
        }
10.循环结构(<=用的多)
    1.while(){
        }
    小技巧照旧
    2.do{
        }while();
    实用性不高
    3.for(i=1;i<0;i++){
        }
    使用频率最高,推荐
    4.break直接退出循环
    5.continue结束当前轮回
11.数组
    1.一维数组
      int a[10] 数组大小必须是整数常量,不可以是变量
      a[0]
        1.初始化int a[10]={,};{0};{}——未初始化,默认随机数
          memset函数——头文件string.h;推荐
            memset(数组名,值,sizeof(数组名));
            初学者只0/-1,因为按字节赋值;其他值用fill函数(memset执行速度快)
        2.递推:后面的结果由前面的得出,用于赋值。——顺推、逆推
        3.数组大小较大(10的6次方),定义在主函数外
            函数内部申请的局部变量来自系统栈
            函数外部申请的全局变量来自静态存储区
    2.二维数组——矩阵
      int a[4][5]
        1.初始化:按第一维的顺序
        2.几维数组几个循环
    3.字符数组
        1.初始化
          char str[5]={'',}
          char str[5]=""——只限于初始化可以这样用
        2.输入输出
            1.scanf,printf: %c(单个字符,识别多)、%s(输入时不加&)
            2.getchar,putchar: 单个字符
            3.gets,puts: 一行,识别\n结束
        3.存放
            1、3在数组末尾自动添加\0,即NULL——(初始化时数组长度要多一个)
            和2混用会乱码
        4.string.h
            1.strlen(str);——得到第一个\0前字符的个数
            2.strcmp(str1,str2);——按字典序比较大小;逐个字符比较,直接结束
                <,返回负整数
                =,返回0
                >,返回正整数
            3.strcpy(str1,str2)——2复制给1
            4.strcat(str1,str2)——2直接连到1后面
        5.sscanf,sprintf
            1.scanf(screen,"%d",&n)——从左至右,screen表示屏幕
              printf(screen,"%d",n)——从右至左
            2.sscanf(str,"",&n)——把字符串转换成其他类型
              sprintf(str,"",n)——把其他类型转换成字符串
            3.sscanf支持正则表达式    
                (一种文本模式,包括普通字符和特殊字符;regex;可以方便的处理文本,包括文本的查找、替换、验证、切分等)
12.排序
    1.冒泡排序:交换。
               n-1趟;每趟确定最右(大)的数;按顺序每两个交换

你可能感兴趣的:(C/C++,c语言,c++)