微蓝网分享经验,让生活更简单!移动APP免费注册登录

话说C语言的const2,不得不了解!

阅读:138次 时间:2025-02-28 08:39:46来源:用户
最佳经验
由作者撰写原创经验并推荐置顶

const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable),我们来分情况看语法上它该如何被使用,以下内容是由微蓝经验网用户发布话说C语言的const2,不得不了解,希望对于用户有一定帮助,为朋友进行解决疑惑,如若想了解更多相关内容,可以向底部移动了解更多与本教程文章相关解决经验方法!

步骤/方法
  1. 1

    例如:

    const char* name=David;

    如果没有const,我们可能会在后面有意无意的写name[4]='x'这样的语句,这样会

    导致对只读内存区域的赋值,然后程序会立刻异常终止,有了 const,这个错误就

    能在程序被编译的时候就立即检查出来,这就是const的好处,让逻辑错误在编译

    期被发现,const 还可以用来修饰数组

    const char s[]=David;

    与上面有类似的作用。

    话说C语言的const2,不得不了解!
  2. 2

    在函数声明时修饰参数

    来看实际中的一个例子,NAME

    memmove -- copy byte string

    LIBRARY

    Standard C Library (libc, -lc)

    SYNOPSIS

    #include

    void *

    memmove(void *dst, const void *src, size_t len);

    话说C语言的const2,不得不了解!
  3. 3

    这是标准库中的一个函数,用于按字节方式复制字符串(内存),它的第一个参数,是将字符串复制到哪里去(dest),是目的地,这段内存区域必须

    是可写,它的第二个参数,是要将什么样的字符串复制出去,我们对这段内存区域只做读

    取,不写。

    话说C语言的const2,不得不了解!
  4. 4

    于是,我们站在这个函数自己的角度来看,src 这个指针,它所指向的内存内所存

    储的数据在整个函数执行的过程中是不变,于是src所指向的内容是常量,于是就

    需要用const修饰,例如,我们这里这样使用它,const char* s=hello;

    char buf[100];

    memmove(buf,s,6); //这里其实应该用strcpy或memcpy更好

    如果我们反过来写,

    memmove(s,buf,6);

    话说C语言的const2,不得不了解!
  5. 5

    那么编译器一定会报错,事实是我们经常会把各种函数的参数顺序写反,事实是编

    译器在此时帮了我们大忙,如果编译器静悄悄的不报错,(在函数声明处去掉

    const即可),那么这个程序在运行的时候一定会崩溃。

    话说C语言的const2,不得不了解!
注意与说明

本文仅供参考,原帖无图,为了美观随便找的图,以上经验结束,与话说C语言的const2,不得不了解,有关的经验教程内容,若解决问题请点击“有用”,没有解决请向下浏览“相关”内容或点击“无用”平台积极改进优质原创的内容文章,点击下方工具分享给更多的朋友吧!

THE END
分享到:
免责声明:本文来自微蓝网用户分享,不代表微蓝网的立场。
作者信息

新手帮助关于我们招聘信息反馈投诉免责声明服务协议最新文章

微蓝网部分素材(图片、视频、音频等)来自于网络,不代表本站立场,以上素材或内容仅代表作者个人观点,因此产生相关问题作者本人负责,本站将不承担任何法律责任! 如有问题请进行侵权投诉

© 2025 VLPOS.com 版权所有 微蓝网 ICP备案号:黑ICP备20003952号-1  黑公网安备 23012602000120号