• c语言提高学习笔记——02-c提高03day


    在学习c语言提高总结了笔记,并分享出来。有问题请及时联系博主:Alliswell_WP,转载请注明出处。

    02-c提高03day

    目录:
    1、堆分配内存API
    2、sscanf
    3、练习:查找子串
    4、一级指针易错点
    (1)越界
    (2)指针叠加会不断改变指针指向
    (3)返回局部变量地址
    (4)同一块内存释放多次
    5、const使用
    6、指针的指针(二级指针)
    (1)二级指针基本概念
    (2)二级指针做形参输出特性
     (3)二级指针做形参输入特性
    (4)二级指针练习
    7、位运算
    (1)位逻辑运算符
    1)按位取反~
    2)位与(AND):&
    3)位或(OR):|
    4)位异或:^
    (2)移位运算符
    1)左移<<
    2)右移
    3)用法:移位运算符

    1、堆分配内存API:

    1. 1 #include<stdlib.h>
    2. 2 void *calloc(size_t nmemb,size_t size); 3 功能: 4 在内存动态存储区中分配nmemb块长度为size字节的连续区域。calloc自动将分配的内存置05 参数: 6 nmemb:所需内存单元数量 7 size:每个内存单元的大小(单位:字节) 8 返回值: 9 成功:分配空间的起始地址 10 失败:NULL
    1. 1 #include<stdlib.h>
    2. 2 void *realloc(void *ptr,size_t size); 3 功能: 4 重新分配用malloc或者calloc函数在堆中分配内存空间的大小。realloc不会自动清理增加的内存,需要手动清理,如果指定的地址后面有连续的空间,那么就会在已有地址基础上增加内存,如果指定的地址后面没有空间,那么realloc会重新分配新的连续内存,把旧内存的值拷贝到新内存,同时释放旧内存。 5 参数: 6 ptr:为之前用malloc或者calloc分配的内存地址,如果此参数等于NULL,那么和realloc与malloc功能一致 7 size:为重新分配内存的大小,单位:字节 8 返回值: 9 成功:新分配的堆内存地址 10 失败:NULL

    示例代码

    1. 1 void test01(){
    2. 2   int* pl=calloc(10,sizeof(int));//开辟了40个字节,并赋值为0 3   if(pl==NULL){ 4     return5   } 6   for(int i=0;i<10;i++){ 7     pl[i]=i+18   } 9   for(int i=0;i<10;i++){ 10     printf("%d",pl[i]); 11   } 12   printf("\n");    if(p1 != NULL)    {      free(p1);      p1 = NULL;    } 13    14 } 15 16 void test02(){ 17   int* pl=calloc(10,sizeof(int));//开辟了40个字节,并赋值为0 18   if(pl==NULL){ 19     return20   } 21   for(int i=0;i<10;i++){ 22     pl[i]=i+123   } 24   //申请空间,
  • 相关阅读:
    【机器学习】带你轻松理解什么是强化学习中的贝尔曼方程
    gym原来是这样用的
    Codeforces Round #821 (Div. 2)
    uni-app攻略:如何对接驰腾打印机
    mysql 查找表中重复数据 类型题目
    DSPE-PEG-Silane,磷脂-聚乙二醇-硅烷,修饰二氧化硅颗粒用科研试剂
    使用GPT2-Chinese进行中文预测生成文章
    java8-Stream流常用API
    Hive数据仓库工具基本架构和入门部署详解
    手撕前端面试题【javascript】
  • 原文地址:https://blog.csdn.net/qq_21685903/article/details/127736525