• 第二章 C/C++快速入门


    1.  C和C++部分区别

    输入输出,指针引用

    C语言的scanf和printf比C++的cin和cout要快

    2. 头文件是什么

    #include<stdio.h>

    例如stdio是标准输入输出库,.h是头文件的文件格式。文件中包含一些跟输入输出有关的东西,程序需要输入输出的时候,需要引用头文件才能使用文件里的输入输出函数

    在C++中,推荐使用cstdio代替stdio.h,即#include<cstdio>和#include<stdio.h>是等价的。其他文件例如math.h和cmath也是等价的,所以在C++中可以使用前缀加一个c并去掉后面.h

    3. 主函数是一个程序的入口位置,一个程序最多只有一个主函数

    int main(){
    ...
    }

    4. 输入输出

    scanf("%d%d",&a,&b);
    printf("%d",a+b);

    scanf用来读入数据,%d是int型的输入输出标识

    5. C++向下兼容C,对于C语言文件可以选择保存成.cpp格式

    6. 变量名

    不能是C语言标识符

    第一个字符必须是字母或者下划线,吃了第一个字符以外,其他字符必须是字母、数字、下划线

    变量名区分大小写

    7. 整型用%d表示

    短整型short

    整型int:一般一个整数占用32位即4字节,10^9(2^31)以内都可以定义成int

    长整型long long:一般一个整数占用64位即8字节,如果赋初值的时候待2^31-1则需要在初值后面加上LL否则编译错误

    8. 浮点型用%f表示

    单精度float,一个浮点数占用32位,1位作为符号位,8位作为指数位,23位作为尾数位,有效精度只有6-7位

    双精度double,一个浮点占用64位,1位作为符号位,1位作为指数为,52位作为位数位,有效精度有15-16位,多使用double

    9. 字符型用%c表示

    ASCII码转换

    0-9:48-57

    A-Z:65-90

    a-z:97-122

    字符常量必须使用单引号

    #include<stdio.h>
    int main(){
        char c1='a', c2='b', c3=99;
        printf("%c%c%c",c1,c2,c3);
        return 0;
    }
    //返回结果是abc

    10. 转义字符

    代表空格

    代表NULL

    11. 布尔型

    在C++可以直接用。在C中必须加stdbool.h才可以用

     取值是true和false,也可以复制整型常量,true=非零,false=零

    #include<stdio.h>
    int main(){
        bool flag1=0,flag2=true;
        int a=1,b=1;
        printf("%d %d %d
    ",flag1,flag2,a==b);
        return 0;    
    }

    12. 强制类型转换

    格式:(新类型名)变量名

    13. 符号常量和const常量

    #define pi 3.14//末尾不加分号
    #define ADD(A,B)((a)+(b))
    const double pi=3.14;
    //二者都是常量,一旦定义值就无法改变

    14. 自增

    i++;//先使用i后自增
    ++i;//先自增后使用i
    #include<stdio.h>
    int main(){
        int a=1,b=1,n1,n2;
        n1=a++;
        n2=++b;
        printf("%d %d
    ",n1,a);
        printf("%d %d
    ",n2,b);
        return 0;
    }
    //结果:
    //1 2
    //2 2

    15. 条件运算符

    ( ? :)是C语言中唯一的三目运算符,A ? B : C;

    如果A为真那么返回B,如果A为假那么返回C

    16. 位运算符

    << 左移 a<<x 整数a按二进制左移x位

    const int INF=(1<<30)-1 //表示无穷大

    17. 赋值操作

    int m,n;
    n=m=5;//连等
    n*=3;//即n=n*3

    18. &取地址符

    定义变量后,会在计算机内存中分配一块空间给该变量,&表示取得该变量的地址

    除了字符串数组以外,输入都要加&,因为数组名称本身代表了第一个元素的地址

    19. 除了%c以外,scanf对其他格式符(如%d)的输入是以空白符(即空格、换行等)位界数判断标志的

    #include<stdio.h>
    int main(){
        int a;
        char c ,str[10];
        scanf("%d%c%s",&a,&c,str);
        prinf("a=%d,c=%c,str=&s",a,c,str);
        return 0;
    }
    
    /*
    输入数据:
    1 a bcd
    输出数据:
    a=1,c= ,str=a
    */

    20. 如果想输出%或者

    printf("%%");//输出%
    printf("\");//输出

    21. 对其输出

    %md,m位右对齐,高位用空格补

    %0md,m位右对齐,高位用0补齐

    %.mf让浮点数保留m位小数输出

    #include<stdio.h>
    int main(){
        double d1=12.3456;
        printf("%.0f
    ",d1);
        printf("%.1f
    ",d1);
        printf("%.2f
    ",d1);
        printf("%.3f
    ",d1);
        printf("%.4f
    ",d1);
        return 0;
    } 
    
    /*
    12
    12.3
    12.35
    12.346
    12.3456
    */

    22. getchar和putchar

    putchar用来识别单个字符

    getchar可以识别换行符

    23. typedef给复杂数据类型起名来简化使用

    例如给long long 数据类型命名为LL

    #include<stdio.h>
    typedef long long LL;
    int main(){
        LL a=123456789012345LL;
        printf("%lld
    ",a);
        return 0;
    }
    //输出:123456789012345

    24. 常用math函数,加上math.h头文件

    fabs(double x):对x取绝对值

    floor(double x):对x向下取整

    ceil(double x):对x向上取整

    pow(double r,double p):得出r^p

    sqrt(double x):返回x的算术平方根

    log(double x):返回x的以自然对数为底的对数

    sin,cos,tan (double x)三角函数,参数要求是弧度值 const double pi = acos(-1.0) x=pi*45/180

    round(double x):对x四舍五入

    25. if语句

    在if语句中,表达式是“!=0”或者“==0”那么可以简化

    如果是“!=0”可以省略“!=0”,

    如果是“==0”可以省略“==0”并在表达式前添加!

    if(m){ //表示如果m不为0
    ...
    }
    
    if(!m){//表示如果m为0
    ...
    }

    26. switch语句

    switch(表达式){
    
      case 1:
    
      case 2:
    
      case 3:
    
    }

     如果不在case中加上break,则会从命中行开始顺序执行到结束

    27. 左对齐和右对齐

    printf("%-10d
    ",101010); //左对齐10位
    printf("%10d",101010); //右对齐10位

    28. 冒泡排序,每次香菱两个元素进行比较,每一趟排序后都有一个元素的位置被确定,整个过程执行n-1趟

    29. memset:对数组中每一个元素赋相同的值

    memset(数组名,值,sizeof(数组名));

    需要添加string.h头文件

    30. puts和gets

    gets识别换行符 作为输入结束

    puts用来输出一行字符串

    31. string.h头文件

    strcmp(字符数组1,字符数组2)

    字典序

    1<2返回负整数

    1==2返回0

    1>2返回正整数

    strlen(字符数组)

    得到字符的个数

    strcpy(字符数组1,字符数组2)把一个字符串2赋值给另一个字符串1

    strcat(字符数组1,字符数组2)把字符数组2街道字符数组1后面

    32.sscanf和sprintf

    sscanf(str,"%d",&n); 
    sprintf(str,"%d",n);

    sscanf:把字符数组str中的内容以%d的格式写到n中

    sprintf:把n以%d的格式写到str字符数组中

    #include<stdio.h>
    int main(){
        int n;
        char str[10]="123";
        sscanf(str,"%d",&n);
        printf("%d
    ",n);
    } 
    
    //123

    33.变量在内存中如何存放

    每个变量存放在内存中分配的一个空间,每种类型变量所占的空间不一样。

    每个字节都会有一个地址,计算机通过地址找到变量

    34.指针

    一个房间号指向一个房间。一个地址指向一个变量。

    指针类似于变量的地址

    &表示变量的地址

    int a 是变量,&a 是他的地址

    指针是一个unsigned类型的整数

    35.指针变量

    用来存放指针,或者说地址

    给指针变量赋值的方式是把变量的地址取出来,赋给对应类型的指针变量

    *是类型的一部分,因此*p代表值,p代表指针变量

    int*是指针变量的类型,p表示变量名

    数组名作为数组的首地址

    36.引用

    C++的引用不产生副本

    对引用变量的操作就是对原变量的操作

    常量不可以使用引用

    37.结构体

    构造函数的一个特点是它不需要写返回类型,且函数名与结构体名相同

    38.cin与cout

    get输入单个空白字符,可以接受空格回车等

    getline输入包含空白的长字符串,可以接受空格,遇到回车停止

    cin.getline(str,100);//读入数组str[100]

    getline(cin,str);//string容器

  • 相关阅读:
    POJ 1185 炮兵阵地 经典的 状态压缩dp
    hdu 1565 方格取数(1) 状态压缩dp
    poj Corn Fields 状态压缩dp。
    fzu 2138 久违的月赛之一 容斥。
    fzu 2136 取糖果 好几种方法解决。
    hdu 1231 最大连续子序列
    选择排序
    SharedPrefernces使用实例讲解
    SharedPrefernces使用实例讲解
    可以ping通,但是不能connect
  • 原文地址:https://www.cnblogs.com/ak918xp/p/13184878.html
Copyright © 2020-2023  润新知