美文网首页
C语言_内存和字符串

C语言_内存和字符串

作者: 拙峰朽木 | 来源:发表于2018-04-27 17:41 被阅读7次

    @(C语言)

    [toc]

    内存

    c语言中内存分三个区:

    • 程序区:存储程序的二进制文件

    • 静态存储区:全局变量和静态变量

    • 动态存储区:

      • 堆区:由程序动态分配
      • 栈区:由编译器动态分配,编译器自动申请和释放
    • (void )malloc*(int size):

      • 分配内存的单元是字节,
      • 分配大小是size。
      • 分配的内存是连续的
    • void* calloc(count,size)

      • 申请count个大小为size的连续空间,这个连续空间的大小是size
      • 而不是Count*Size的空间,同时它会初始化0;
    • free

      • 动态申请的内存用完后要释放,且不能重复释放
      • 释放完要将它的指针赋值为NULL,否则将成为野指针
      • 申请和释放要一一对应

    字符串

    C语言中没有String
    常量区的内容不能被修改。

     char * str ="string";
        //系统先分配了一个常量区A,用来存储"string"
        //char * str 没有初始化
        //将常量区A的首地址指向str
        //当我们修改的时候失败,是因为常量区不允许修改的
    
    char * ch =(char *)malloc(100*sizeof(char));
        //将"china"内容copy过来赋值到指定空间
        //如果  ch="china",则是将ch指向了常量地址
        strcpy(ch,"china");
        ch[2] ='b';
        printf("%s \n",ch)
    
    • strcpy 拷贝
    • strcat 添加
       char  fundaction [25];
        char *A=" a ";
        char *B=" b ";
        char *C =" c";
        
        strcpy(fundaction, A);
        strcat(fundaction,B);
        strcat(fundaction,C);
        
        printf("fundaction : %s \n",fundaction);
    

    输出:
    fundaction : a b c

    相关文章

      网友评论

          本文标题:C语言_内存和字符串

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