C++基础

作者: Gambol_r | 来源:发表于2019-07-17 23:09 被阅读0次

    1.C的基本数据类型

    java基本数据类型 C基本数据类型

    基本数据类型所占字节数:

    java基本数据类型 C基本数据类型
    boolean:1 --
    byte:1 --
    char:2 char:1
    short:2 short:2
    int:4 int:4
    long:8 long:4
    float:4 float:4
    double:8 double:8
    -- singed(有符号):有符号数,最高位表示符号位,可以表示负数。
    -- unsinged(无符号):无符号数,最高位表示数值位,不可以表示负数。
    -- void():

    C没有boolean byte C用 0和!0表示true和false

    java一个字节所表示的数值大小


    java字节表示数值大小

    C一个字节所表示的数值大小


    C一个字节所表示的数值大小
    #include<stdio.h>    
    #include<stdlib.h>    
    /**
    char, int, float, double, long, short, signed, unsigned, void
    signed unsigned 有符号 无符号  只能用来修饰整形变量  char int short long 默认有符号 
    sizeof(int)
    */
    main(){    
       printf("char占%d个字节\n", sizeof(char));
       printf("int占%d个字节\n", sizeof(int));
       printf("short占%d个字节\n", sizeof(short));
       printf("float占%d个字节\n", sizeof(float));
       printf("long占%d个字节\n", sizeof(long));
       printf("double占%d个字节\n", sizeof(double));
       unsigned char c = 128;
       printf("c = %d\n",c);
           system("pause"); 
    } 
    
    image.png

    2.C的指针

    当声明一个变量,即会在内存中开辟出一段连续的内存空间。

    #include<stdio.h>    
    #include<stdlib.h>    
    main(){  
           int i = 123;
           //一般计算机中用16进制数来表示一个内存地址 
           printf("%#x\n",&i); 
           //int* int类型的指针变量  pointer指针  指针变量只能用来保存内存地址
           //用取地址符&i 把变量i的地址取出来 用指针变量pointer 保存了起来
           //此时我们可以说 指针pointer指向了 i的地址 
           //int *pointer ; int * pointer   
           printf("pointer的值 = %#x\n",pointer);
           printf("pointer的内存地址 = %#x\n",&pointer);
           printf("*pointer的值%d\n",*pointer);
           *pointer = 456;
           printf("i的值是%d\n",i);
           system("pause"); 
           } 
    
    
    image.png image.png
    3.C语言野指针
    main(){  
             //野指针   指针使用之前要初始化 赋给它一个自己程序中声明的变量的地址
             //指针使用的时候要注意 int类型的指针要指向int类型的内存地址, double类型的指针要指向double类型的地址 ....
              //如果乱指会出bug 
             int i; 
             double d = 3.1415;
           int* pointer = &d;
           printf("pointer的值=%#x\n",pointer);
           printf("*pointer = %d\n",*pointer);
           system("pause"); 
           } 
    
    
    4.C语言结构体

    C的机构体类似于Java的类,struct来声明C的结构体

    #include<stdio.h>    
    #include<stdlib.h>    
    /**
    c结构体 类似java的class  struct来声明c的结构体 
    结构体的大小大于等于结构体中每一变量的占字节数的和
     结构体的大小是最大的那个变量所占字节数的整数倍 
     C结构体中不能定义函数  
     
     函数指针的定义   返回值(*函数指针变量名字)(返回值); 
     -> 间接引用运算符   
    */
    void study(){
               printf("good good study!\n");
               }
    //struct Student{
    typedef struct Student{
          int age;  //8
          int score;  // 4
          char sex;   //1
          void(*studypointer)();
         //};
    } stud;
    main(){    
     //struct Student = {18,100,'f'};
     stud stu = {18,100,'f'};
     stu.studypointer = &study;
     stu.studypointer();
     struct Student* stuPointer = &stu;
     printf("*stuPointer.age = %d\n",(*stuPointer).age);
     (*stuPointer).sex ='m';
     printf("stu.sex = %c\n",stu.sex);
     printf("stuPointer->age = %d",stuPointer->age);
     //printf("stu.age = %hd\n",stu.age);
     //printf("stu.score = %d\n",stu.score);
     //printf("stu.sex = %c\n",stu.sex);
    // printf("结构体student占%d个字节\n",sizeof(stu));
           system("pause"); 
    } 
    
    
    image.png

    5.C语言枚举

    #include<stdio.h>    
    #include<stdlib.h>    
    enum weekday{
         MON=9, TUE, WEND,THUR,FRI,SAT,SUN
         };
    main(){    
       enum weekday day = MONe;
       printf("day= %d",day);
           system("pause"); 
           } 
    
    
    image.png

    6.C语言自定义类型

    #include<stdio.h>    
    #include<stdlib.h>    
    typedef int i;
    main(){    
               i j = 123;
               printf("j = %d\n",j);
           system("pause"); 
           } 
    
    
    image.png

    相关文章

      网友评论

          本文标题:C++基础

          本文链接:https://www.haomeiwen.com/subject/pochlctx.html