美文网首页
C语言基础知识备忘

C语言基础知识备忘

作者: 陈走路Aston | 来源:发表于2016-09-18 23:50 被阅读12次

    数组:

    1. 声明并初始化赋值:
    int  array1[5] = {1,2,3,4,5}; //一维数组,默认5个元素。
    int array11[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; //二维数组,3行4列。
    char array2[5] = {'L','O','V','E','U'}; //字符赋值。
    char array3[] = "LOVEU"; //字符串赋值。
    
    1. 赋值:
    int  array1[5] = {1,2,3,4,5}; //法一:初始化时就赋值。
    array1[4] = 4; //法二:以后单独赋值。
    
    1. PS:
    1 .初始化赋值的时候可先赋值一部分,剩余的部分是\0即结束符。
    int  array1[5] = {1,2};
    2 .声明数组可以先不说明多少元素:
    int  array1[] = {1,2,3,4,5}; //那么就是5个元素,数组长度为5.
    3 .问:字符串数组和字符数组区别:
    答:大致相同,但是字符串数组最后一个元素存\0 结束符,
    使用sizeof()计算长度发现字符串长度比字符长度多一个。
    

    指针:

    变量、数组、函数等都是存在于计算机内存中。内存中存放的位置就叫做地址。地址由一系列编号组成,所以又称为指针。

    1.指针变量。用*
    int *p1; //指向整型变量的指针变量p1.
    float *p2; 
    char *p3; 
    
    2.取地址运算符,&
    int a=88;  //初始化变量a为88。
    int *p; //定义一个指针变量。
    p = &a; //取得变量a所存放的地址,并且赋值给指针变量p1.
    printf("%d\n",*p); //p代表地址,*p代表这个地址中存放的内容。
    
    3.野指针和NULL.
    初始化的指针如果没有指向的话就是野指针,很危险,可以先赋值为NULL。
    
    4.分配内存的函数。
    p = (int *)malloc(99); //指针变量p,指向的变量类型为int,分配了99个内存空间。
    free(p); //使用后释放内存空间。
    
    5.数组的指针:
    int a[5] = {1,2,3,4,5};
    int *p;
    p = &a[0];  //p指向数组的首地址。
    p= a;  //等同上面,p指向数组的首地址。
    
    6.字符串的指针:
    char *ps = "love";  //ps指向字符串的首地址。
    printf("%s \n",ps); //"love"
    printf("%c \n",*ps); //"l"
    printf("%c \n",*(ps+1)); //"o"
    
    7.指针用途,节约内存空间。
      char *pc[3] = {
                "love",
                "loveu",
                "loveuu"
        };
        for (int i=0; i<3; i++) {
            printf("%s \n", pc[i]); //逐行打印。
        }
        return 0;
    

    函数

    //函数要先声明,然后定义,然后就可以使用了。(递归函数见下)。
    #include <stdio.h>
    int sum(int); //函数先声明。
    int main(){
        int n = 100, s = 0;
        s = sum(n);
        printf("%d\n", s);
    }
    
    int sum(int n){
        if (n == 1) {
            return 1;
        }else{
            return n+sum(n-1);
        }
    }
    

    变量

    static静态变量,static int a = 6;,主要作用于局部变量,用于延长局部变量的生命周期。
    extern,主要用于全局变量和函数。用于变量提升。

    #include <stdio.h>
    int main(void){
        extern int a; //没有这句的话就会显示“无法使用未声明的变量。”
        printf("%d \n",a);
    }
    int a = 11;
    

    参数

    指针做参数:
    #include <stdio.h>
    void swap(int *p, int *q);
    int main(){
        int a=100,b=200,*p1=&a,*p2=&b;
        printf("main调用swap之前*p1:%d, p2:%d.\n",*p1,*p2);
        swap(&a, &b);
        printf("main调用swap之后*p1:%d, p2:%d.\n",*p1,*p2);
        return 0;
    }
    void swap(int *p, int *q){
        int temp;
        temp = *p;
        *p = *q;
        *q = temp;
        printf("在swap函数中置换后*p:%d, q:%d.\n",*p,*q);
    }
    
    #运行结果#:
    main调用swap之前*p1:100, p2:200.
    在swap函数中置换后*p:200, q:100.
    main调用swap之后*p1:200, p2:100.
    Program ended with exit code: 0
    

    指针函数

    #include <stdio.h>
    char *substring(char s[], int, int);
    int main(){
        char string[] = "I Love U";
        char *ps = NULL;
        ps = substring(string, 2, 7);
        printf("%s\n",ps);
        return 0;
    }
    
    char *substring(char s[], int i, int j){
        static char temp[100];
        int m,n;
        for (m=0, n=i; n<=j; m++,n++) {
            temp[m] = s[n];
        }
        temp[m] = '\0';
        return temp;
    }
    
    ##运行结果:
    Love U
    Program ended with exit code: 0
    

    结构体:

    基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。

    相关文章

      网友评论

          本文标题:C语言基础知识备忘

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