对十四天的c学习的总结


//课一:熟悉Mac系统及常用工具,进制。c数据类型,常量变量,运算符,表达式,格式化输入输出

   
     1、
     二进制:0b开头
     八进制:0开头=====》转换过程中:相当于3位的二进制(记得8421)
     十进制:正常数字
     十六进制:0x开头============》相当于4位的二进制
     某进制-->十进制:按权求和。
     十进制-->某进制:连除倒取余。
     十二进制:时钟,季节
     二十四进制:小时制

     六十进制:分钟,秒钟

     2、
     c数据类型:
             基本数据类型:byte,char,int(short,long),float,double,
             构造型:枚举(enum),结构体(struct),数组,
     3、
     常量:在程序运行期间不可以被改变的量。--存储在常量区。
         --> 整型常量
         --> 浮点型常量
         --> 字符常量
         --> 字符串常量
     变量:随时可以更改的量===》变量名可以当地址使用,因为在声明这个变量的时候,这个变量就和这个地址绑定在一起了。--存储在栈区。
         -->定义:数据类型修饰符 变量名 = 初始值;
         -->变量名:
            -->命名规则:由字母,下划线,数字组成,以字母、下划线打头。
                        -->不能与系统保留字重名。
                        -->在同一个生命周期(同一个作用域)的变量是不能重名的。
                        -->见名知意。
     4、
     运算符:
        -->赋值运算符 =
        -->+、-、*、/、%
        -->++、--(在前先参与运算,再自身运算)(在后先自身运算,再参与运算)
        -->+=、-=
        -->逻辑运算符 &&、||、!
        --> ==、>=、<=
     5、
     表达式:常量、变量以及运算符组成。
          -->算术表达式:
          -->逻辑表达式:
          -->

          -->

      6、oc中BOOL 型  非0即真

             c中    bool型   非0即1

             BOOL型占一个字节,1byte=8bit,是一个拥有8位存储空间的数据类型。所以在计算机中,当BOOL型的变量不等于0的时候,都会返回一个前8位的所存储的内容。也就是BOOL作为8位二进制数。其中YES:00000001

                                                          NO:00000000


易混淆点:1)----》%d %o %x 十进制,八进制,十六进制,计算机输出的时候不带前导符,如0,0x。

                                 2)  -----》int a;区别于 int a=0;编译的时候,两者都分配了空间,只不过,前者在分配完空间以后,空间里的内容是不确定的,有可能是开机时产生的随机数,也有可能是别的程序使用过后释放的,还有可能是0但后者在分配完空间以后,顺手把该空间里的内容置为0。

               3)-------》键盘缓冲区问题:首先,要明白,从键盘读入键盘缓冲区(buffer)的数据都是以ASCII码值存储的(包括回车)。当遇到两个连续的scanf输入字符的时候就要小心,要么在第二个scanf的前面加一个getchar()来接收buffer中的残留字符,要么就在第二个scanf的格式控制串前加一个空格,这时空格的作用就是吸收到buffer中的无限制的回车符、空格符以及Tab符。


  

    //课二:关系运算符,逻辑运算符,if,条件运算符,switch...case...
   
     1、
     关系运算符:
            --> == 、 >= 、 <=
     2、
     逻辑运算符:

            --> && 、 || 、!


在逻辑与以及逻辑或的运算过程中,应当注意,短路现象,特别是结合了++,--一类的运算的时候。

     3、
     条件运算符:
            -->     ?   :
     4、
     -->if(条件表达式){
            }
     -->if(条件表达式){
            }else{
            }
     -->if(条件表达式){
            }else if(条件表达式){
            }else{
            }
     5、
     -->switch(int/byte/short/char/enum){
                case 常量表达式:break;
                default:break;
            }
    
    //课三:while,do{}while;,for循环
   
     1、
     -->while(条件表达式){
            循环体;
            }
     2、
     -->do{
            循环体;
            }while(条件表达式);
     3、
     -->for(1初始值;2-5条件表达式;4-7循环增量){
            3-6循环体;
            }
    
    //课四:一维数组,数组排序,字符数组
   
     1、
     一维数组:相同数据类型的数据的集合。
            -->类型修饰符 数组名[长度]={初始值};
            -->数组名:首地址
            -->访问:数组名[下标]。
     2、
     数组排序:
            -->冒泡排序
     3、
     字符数组:数组元素全是字符。
     定义方式:
            -->char ch[5]={'a','b','c','d','e'};
            -->char ch[]={'a','b','c'};--自动计算字符数组的长度

            -->char ch[]="yibella";


           --->char ch[5]={1,2,3,4,5};也是可以的,char型可以存储ASCII码值以及0-255的数字。

     字符数组不一定是字符串;但字符串一定是字符数组。

        -->字符串末尾会自动加'\0'。这样字符串的实际空间就要比字符串的有效字符的长度多1.


       4、strlen();---字符串的有效字符的长度,不包括'\0'

        5、strcpy(目的地址,源地址);把从源地址的首地址开始以'\0'为结束符的字符串 复制到以目的地址的首地址开始的内存空间。

        6、strcat(目标地址,源地址);把从源地址的首地址开始以'\0'为结束符的字符串拼接到以目标地址的在'\0'前面的最后一个字符为头的后面。

        7、strcmp(字符串1,字符串2);依次比较字符串1和字符串2相对应的字符的ASCII码值,一旦在哪个字符比较出结果后就直接返回int型的结果。==0,>0,<0三种情况。

    
    //课五:二维数组,字符串数组,多维数组
   
     1、
     二维数组:
            -->数组的数组。
     2、
     字符串数组;
            -->数组元素为字符串。
     3、
     多维数组
    
    //课六:函数分类,函数声明和定义,函数调用,形参实参,函数嵌套调用
   
     1、
     函数分类:-----》函数是c语言程序的基本单位。
            -->无返回值无参数
            -->无返回值有参数
            -->有返回值无参数
            -->有返回值有参数
     2、
     函数声明和定义:
            -->声明在前,定义在后。
            -->声明和定义的标题一模一样。
     3、
     函数调用:
     4、
     形参:是实参的副本。
     实参:在主调函数中的传参。
     5、
     函数嵌套调用:
            -->一个被调函数在调用另外一个函数。
    
    //课七:结构体,结构体数组
   
     1、
     结构体:
            -->struct{ };
            -->不同数据类型的数据的集合。
            -->结构体内存空间分配:以其中数据类型所占字节数最长的作为基数,按倍数分配。
            -->#pragma park(n) 按照n个字节对齐
     2、
     结构体数组:
            -->就是数组里的元素为结构体而已。
            -->
    
    //课八:指针
   
     1、
     指针:
        -->一般的
        -->数组  --数组名=指针变量名
            -->字符数组:
            -->字符串数组:
        -->结构体 --指针变量名=&结构体变量名
        -->结构体数组 --指针变量名=数组名
     
    
    //课九:结构体指针
   
     1、结构体指针
     2、结构体数组与指针的关系
     3、预编译指令
        -->宏定义---就是在预编译期间的一个替换工作。
            -->普通宏
            -->带参数的宏
        -->条件编译
    
    //课十:动态内存分配
   
     1、存储区划分
        -->常量区   ||}
        -->代码区   ||}
        -->静态区   ||}
        -->栈区       ||}这四个区的内存空间都是系统自动分配和自动释放的。
        -->堆区--自己分配内存,自己释放内存(malloc(字节数),free(内存首地址))
     2、堆内存分配函数
        -->malloc()
            -->free()
     3、其他内存分配函数
        -->calloc
        -->realloc
        -->
     4、内存操作函数
        -->初始化内存 memset()
        -->内存拷贝
        -->内存比较
        -->
    
    //课十一:函数指针、回调函数
   
     1、函数指针定义
     2、回调函数---被函数指针调用的函数
     3、动态排序
     4、函数返回值是函数指针
     
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值