• IOS笔记-C语言中的字符串数组 指针


    1、字符串

        

        用“”引起来的内容,就是字符串。

        在C语言中有没有专门的字符串的变量?  没有

        所以我们使用字符数组来存储字符串。(把字符串的每一个字符存储到字符数组的每一个元素中,并且会多存放一个‘’)

        '' 字符串的结束标记,ascII码表中值是 0 对应的字符。NUT,NULL

    2、字符数组

       

        1)定义

           char 数祖名[长度];   

        

           char str[200]; 表示定义一个长度为200的字符数组,如果用来存储字符串,则字符串的最大长度是199,留出一个给''

           char str[3]={'a','b','c'};  //不能以%s进行输出

        2)初始化

           (1)完全初始化

               char str[3]={'a','b','c'};

           (2)部分初始化

               

               char str[3]={'a','b'};

           (3)用字符串进行初始化

               char str[10]="itcast";  //占用了7个字节因为''占用了一个

               char str[10]={"itcast"};

        3)字符数组的引用

           如果把字符数组的内容逐个取出,str[0]、str[1]....str[n-1];

           %s 字符串的格式控制符把字符数组整体进行输出

           %s 给一个字符数组的首地址,系统会自动从首地址开始连续读取直到遇到''结束

        4)存储细节

           字符数组存储的细节:

      

                连续的一片存储区域(地址是连续的),每个字符占用1个字节

           计算字符数组(字符串)的长度

       

           针对这种定义方法,求长度(会包含''):char str[]="abc";    //4

                       sizeof(str)/sizeof(char) =  sizeof(str);

           strlen也可以计算字符串的长度(不包含''):

                      strlen(str);                               //3

    3、字符数字和普通数组的区别

        char str[];   //只能存字符型数据

        int  arr[];   //只能存整型   数据

    4、常见的字符串函数6个

        gets(数组名)   表示获取从键盘数输入的字符串(可以接收空格)

        puts(数组名)   表示讲数组的内容输出到控制台(可以自动换行)

        strcat(数组名1,字符串) 表示把字符串链接到数组1中(回覆盖数组1的)

        strcpy(数组名1,字符串) 表示把字符串拷贝到数组1中,会覆盖数组1中原有的内容

        strcmp(字符串1,字符串2) 比较两个字符串的大小

        字符串1>字符串2    >0  

        字符串1<字符串2    <0

        字符串1==字符串2   ==0

        strlen(数组名) 计算字符串的长度(不包括)

    5、什么是地址?什么是指针?

        内存被操作系统划分了若干个存储单元,每个单元是1个字节(8位)

        每个字节都有字节的地址,这个地址就叫指针。

        地址和内存单元是两个不同的概念

        地址是内存单元的编号

        内存单元是地址对应的实际存储内容。

    6、指针变量

        用来存放地址的变量,就称为指针变量

        1)定义

           数据类型  *指针变量名 ;      //指针变量是个变量,指针是常量

           "*" 在两个场合起作用:

           定义指针的时候使用   int *a;  // *表示定义一个指针变量

           在指针对应的存储单元内容的时候用     *a   //表示获取指针变量中存放的地址所对应的存储内容

        2)初始化

        

           指针定义完成以后,要初始化,如果不初始化,则这个指针成为野指针

           可以用NULL 也可以用 0 进行初始化,表示这是一个空指针,什么也不指。

        

           正常情况下的初始化

         

           int a;

           int  *p1 = &a;

        3)访问方法

           *指针变量  //表示获取指针变量中存放的地址所对应的存储单元的内容

    7、指针的使用场景

           1)间接修改变量的值

    8、多级指针

           指针的指针

    9、指针为什么要区分类型

           1)数据有不同类型,要指向不类型的数据也需要不同的指针

         

           2)指针是一个地址,*指针变量  不知道取多少个字节的内容

  • 相关阅读:
    解析XML(2)
    对Maven项目进行强制更新
    解析xml
    #8:二日合辑——6
    #7:怀念儿时的春节——9
    #6:年兽礼包——6
    #5:你的背包——6
    UVa12298(生成函数的简单应用+FFT)
    #4:初学者之身——5
    #3:调试疯了——3
  • 原文地址:https://www.cnblogs.com/houzhitong/p/4499828.html
Copyright © 2020-2023  润新知