嵌入式综合复习(记录四)

字符串与字符数组{
    字符数组: char a[7] = {'h', 'j' , 'i', 'i', 'o', 'y', '\0'};
    字符串:{    
            char a[7] = {"hjiioy"}; ==  a[7] = "hjiioy";  == a[] = "hjiioy";
            char a[4][5] = {"hel", "kil" ,"ijh", "yhg"};  char b[2][3] = {{"hu"}, {"yu"}};
            char a[][6] = {"hello" , "money", {'w', 'o','r', 'l','d','\0'}};
    }
    字符串函数{
            strlen(): 求字符串长度. 以'\0'为一个结束标志.
            strcpy(): 字符串复制. strcpy(str1, str2);
            strcat(): 字符串链接. strcat(str1, str2);
            strcmp(): 字符串的比较. strcmp(str1, str2);  返回值: 1 , 0 ,-1
                      1: 代表str1比str2大  (从第一个字符开始依次比较(比较的是ascii码))
                      0:  代表两个字符串相等
                      -1: 代表str2比str1大
    }
}
指针(C语言的灵魂)
{
    指针就是地址
    地址{
        每一个字节都有对应的一个编号,这个编号就是地址.
    }
    指针与指针变量{
        指针:一个变量的地址
        指针变量:
        定义方式:  <存储类型>  <数据类型>   *指针变量名; 例: auto int *p;
        本质上是一个变量.特殊在于指针变量专门用来存放变量的地址.
        &: 取地址符   *: 取地址内容.  互为逆运算.    %p: 打印地址
        int a=12; int *p = &a;       *(&a) = a = *p
        注意: 1.指针数据类型必须要与它指向的数据的数据类型相匹配.
               2.明确指针的一个指向. 没有指向的指针通常叫做野指针. int *p = NULL;
        
    }
    指针的运算{
        int *p; int *q;
        p+n: 往高地址方向移动n个数据,  实际地址偏移 = 原地址 + n*sizeof(int);
        p-n: 往低地址方向移动n个数据,  实际地址偏移 = 原地址 - n*sizeof(int);
        两指针相减: q - p : 不代表地址量,而是代表两个地址之间相隔的数据个数.    内部计算方式 : (q - p)/sizeof(int);
                     注意: 两个指针一定要是相同的数据类型.
        关系运算:> , <  比较存放地址的大小。 if(p > q)  不同数据类型比较没有意义.
        赋值运算: int a, *p=&a, *q;  q = p;
        与一维数组{
            int a[6]; int *p = &a[0]; 
        }
    }
}

void型与const类型指针{
    void *p ;  可以存放任何类型的地址.  但是在使用的时候必须进行强转.  char ch ; void *p= &ch;  *(char*)p;
    const{
        const修饰普通变量. 把变量常量化(变成只读变量).
        const修饰指针:1. const int *p: 不能通过*p间接改变变量的值(但是可以通过变量名直接改变),p的指向可以变化.
                                   2. int * const p: 能通过*p间接改变变量的值(但是可以通过变量名直接改变), p的指向不可以变化.
                                   3. const int * const p: 不能通过*p间接改变变量的值(但是可以通过变量名直接改变), p的指向也不可以变化.
    }
}

猜你喜欢

转载自blog.csdn.net/Wshichuan/article/details/82223845