C中const的使用

基于CNN-LSTM融合模型的环卫车动态称重算法研究:从频率感知到精准质量估计 摘要: 针对环卫车辆动态称重需求,本研究提出一种基于CNN-LSTM融合网络的频率分析方法。通过在实验室构建振动频率采集系统,获取不同载重下的结构响应数据,经MATLAB进行信号处理和特征提取后,建立频率-质量的非线性映射模型。实验表明,该算法在静态和模拟动态场景下平均绝对误差小于1.5%,显著优于传统方法,为环卫车智能化管理提供了高精度实时称重方案。 关键词: 动态称重;深度学习;频率分析;CNN-LSTM;MATLAB。 阅读详情

http://hi.baidu.com/liubin/blog/item/950735fa926143899e5146c8.html

C中const的使用

基本解释

 

  const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。

虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。

 

  问题:const变量 & 常量

 

  为什么我象下面的例子一样用一个const变量来初始化数组,ANSI C的编译器会报告一个错误呢?

const int n = 5;

int a[n];

 

  答案与分析:

 

  1)、这个问题讨论的是“常量”与“只读变量”的区别。常量肯定是只读的,例如5, “abc”,等,肯定是只读的,因为程序中根本没有地方存放它的值,当然也就不能够去修改它。而“只读变量”则是在内存中开辟一个地方来存放它的值,只不过这个值由编译器限定不允许被修改。C语言关键字const就是用来限定一个变量不允许被改变的修饰符(Qualifier)。上述代码中变量n被修饰为只读变量,可惜再怎么修饰也不是常量。而ANSI C规定数组定义时维度必须是“常量”,“只读变量”也是不可以的。

 

  2)、注意:在ANSI C中,这种写法是错误的,因为数组的大小应该是个常量,而const int n,n只是一个变量(常量 != 不可变的变量,但在标准C++中,这样定义的是一个常量,这种写法是对的),实际上,根据编译过程及内存分配来看,这种用法本来就应该是合理的,只是ANSI C对数组的规定限制了它。

 

  3)、那么,在ANSI C 语言中用什么来定义常量呢?答案是enum类型和#define宏,这两个都可以用来定义常量。

问题:const变量 & const 限定的内容

 

  下面的代码编译器会报一个错误,请问,哪一个语句是错误的呢?

typedef char * pStr;

char string[4] = "abc";

const char *p1 = string;

const pStr p2 = string;

p1++;

p2++;

 

  答案与分析:

 

  问题出在p2++上。

 

  1)、const使用的基本形式: const char m;

 

  限定m不可变。

 

  2)、替换1式中的m, const char *pm;

 

  限定*pm不可变,当然pm是可变的,因此问题中p1++是对的。

 

  3)、替换1式char, const newType m;

 

  限定m不可变,问题中的charptr就是一种新类型,因此问题中p2不可变,p2++是错误的。

 

  问题:const变量 & 字符串常量

 

  请问下面的代码有什么问题?

char *p = "i'm hungry!";

p[0]= 'I';

 

  答案与分析:

 

  上面的代码可能会造成内存的非法写操作。分析如下, “i'm hungry”实质上是字符串常量,而常量往往被编译器放在只读的内存区,不可写。p初始指向这个只读的内存区,而p[0] = 'I'则企图去写这个地方,编译器当然不会答应。

 

  问题:const变量 & 字符串常量2

 

  请问char a[3] = "abc" 合法吗?使用它有什么隐患?

 

  答案与分析:

 

  在标准C中这是合法的,但是它的生存环境非常狭小;它定义一个大小为3的数组,初始化为“abc”,,注意,它没有通常的字符串终止符'/0',因此这个数组只是看起来像C语言中的字符串,实质上却不是,因此所有对字符串进行处理的函数,比如strcpy、printf等,都不能够被使用在这个假字符串上。

 

  问题5:const & 指针

 

  类型声明中const用来修饰一个常量,有如下两种写法,那么,请问,下面分别用const限定不可变的内容是什么?

 

  1)、const在前面

const int nValue; //nValue是const

const char *pContent; //*pContent是const, pContent可变

const (char *) pContent;//pContent是const,*pContent可变

char* const pContent; //pContent是const,*pContent可变

const char* const pContent; //pContent和*pContent都是const

 

  2)、const在后面,与上面的声明对等

int const nValue; // nValue是const

char const * pContent;// *pContent是const, pContent可变

(char *) const pContent;//pContent是const,*pContent可变

char* const pContent;// pContent是const,*pContent可变

char const* const pContent;// pContent和*pContent都是const

 

  答案与分析:

 

  const和指针一起使用是C语言中一个很常见的困惑之处,在实际开发中,特别是在看别人代码的时候,常常会因为这样而不好判断作者的意图,下面讲一下我的判断原则:

 

  沿着*号划一条线,如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。你可以根据这个规则来看上面声明的实际意义,相信定会一目了然。

 

  另外,需要注意:对于const (char *) ; 因为char *是一个整体,相当于一个类型(如 char),因此,这是限定指针是const。

另=======

const用于函数时出现三个位置:

例如:

const returnVal  function (const list_array)const;

 

形式不过如此

第一个const意思是:返回值是常量

第二个const意思是:函数过程中不能修改list_array的值

第三个const意思是:函数过程不能隐式的修改function参数的值

===

const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。

事实上这个概念谁都有只是三种声明方式非常相似很容易记混。

Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:

把一个声明从右向左读。

char  * const cp; ( * 读成 pointer to )

cp is a const pointer to char

const char * p;

p is a pointer to const char;

char const * p;

同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。

 

另:下面定义的一个指向字符串的常量指针:

  char * const prt1 = stringprt1;

  其中,ptr1是一个常量指针。因此,下面赋值是非法的。

  ptr1 = stringprt2;

  而下面的赋值是合法的:

  *ptr1 = "m";

  因为指针ptr1所指向的变量是可以更新的,不可更新的是常量指针ptr1所指的方向(别的字符串)。

  下面定义了一个指向字符串常量的指针:

  const * ptr2 = stringprt1;

  其中,ptr2是一个指向字符串常量的指针。ptr2所指向的字符串不能更新的,而ptr2是可以更新的。因此,

  *ptr2 = "x";

  是非法的,而:

  ptr2 = stringptr2;

  是合法的。

  所以,在使用const修饰指针时,应该注意const的位置。定义一个指向字符串的指针常量和定义一个指向字符串常量的指针时,const修饰符的位置不同,前者const放在*和指针名之间,后者const放在类型说明符前。

 

「JS逆向三百例」JS逆向HIKVISION-视频监控的前端密码加密 本文详细分析了HIKVISION-海康威视监控前端登录过程中密码的加密机制,通过逆向工程解析了其 JavaScript 加密逻辑,重点研究了HIKVISION-海康威视监控的前端密码SHA256加密算法的实现。基于逆向分析结果,使用 Python 模拟了HIKVISION-海康威视监控的登录流程,最终实现了自动化登录功能。本文旨在为安全研究人员提供技术参考,帮助理解前端加密机制,并强调技术研究的合法性和合规性。 阅读详情

相关推荐

PID调参避坑指南:为什么你的电机总是震荡?从比例带积分到微分实战解析

本文针对电机控制中常见的震荡问题,提供了一份PID调参实战指南。文章深入解析了比例(P)、积分(I)、微分(D)三个参数对系统稳定性的影响,揭示了比例增益过大是导致震荡的关键原因之一,并给出了从纯比例调试到引入积分、微分的系统化调参流程与避坑要点,帮助工程师快速实现电机平稳、精准的控制。

weixin_28223453的博客 456

C语言 基础知识之const(const是什么,const的作用,const的使用)

一、const是什么 const是C/C++中的类型修饰符。 二、const的作用 1、对变量声明只读特性,保护变量值以防被修改 2、节省空间,避免不必要的内存分配。const修饰的变量在程序运行过程中只有一份拷贝 3、提高程序运行效率。编译器不为普通const常量分配存储空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储和读取内存的操作。 三、const的使用 1、const和普通变量 (1)编译器在编译过程中把...

李江林的博客 7万+

RocketMq面板访问异常 com.alibaba.fastjson.JSONException: not close json text, token : string

rocketmq JSONException: not close json text, token : string 问题解决

qq_21067307的博客 5573

C语言中正确使用const

基本解释  const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。问题:const变量 & 常量  为什么我象下面的例子一样用一个const

peterxin's blog 1015

告别Keil,在Windows上用VSCode + arm-none-eabi-gcc + Makefile搭建国产MCU开发环境(附JLink配置避坑)

本文详细介绍了如何在Windows上使用VSCode、arm-none-eabi-gcc和Makefile搭建国产MCU开发环境,替代传统的Keil和IAR。内容涵盖工具链配置、工程结构设计、Makefile编写、VSCode集成调试以及高效开发工作流,特别针对国产MCU如复旦微FM33系列提供了优化方案和避坑指南。

weixin_28729205的博客 434

Cadence——原理图相关教程

包含创建文件,原理图,元器件,规则检查,PDF与BOM清单输出,各类PCB网表

haonanyayaya的博客 1万+

C中CONST的使用

基本解释   const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。  虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。      问题:const变量 & 常量      为什么我象下面的例子一

jamestaosh 9623

黑猫带你学eMMC协议第14篇:eMMC FFU详解(Field Firmware Update)

1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 1、ffu相关寄存器有哪些? 2、如何设置ffu? 3、什么是ffu?是否能够更新旧版本的固件到emmc? 4、ffu配置流程图。 2 什么是FFU 主机下载新的固件到eMMC,下载成功后eMMC将固件安装到设备。 3 相关寄存器/命令 SUPPORTED_MODES [493] FFU_FEATURES [492] 该

黑猫奥利奥的博客 4658

c语言中 const 的作用

const 详细版

gaoaodefish的博客 1922

《无线传感网络 matlab》:从入门到实践

这就是如何使用Matlab建立一个简单的无线传感网络并进行仿真的方法。当然,这只是一个入门级的示例,真正的无线传感网络可能会更加复杂和庞大。首先,我们需要创建一个无线传感网络的基础结构。接下来,我们需要定义一个数据包的格式,以便节点之间可以交换信息。无线传感网络是一种由无线传感器节点组成的、自组织的网络。现在,我们可以开始编写节点代码了。我们将使用Matlab提供的工具箱来构建一个简单的无线传感网络,并对其进行仿真和分析。现在,我们可以将这个节点复制9次,以创建一个包含10个节点的无线传感网络。

NoerrorCode的博客 296

Unity 面试篇|(三)设计模式篇 【全面总结 | 持续更新 | 建议收藏】

设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。设计模式与方法或库的使用方式不同, 你很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码, 而是解决特定问题的一般性概念。你可以根据模式来实现符合自己程序实际所需的解决方案。常常会混淆模式和算法, 因为两者在概念上都是已知特定问题的典型解决方案。但算法总是明确定义达成特定目标所需的一系列步骤, 而模式则是对解决方案的更高层次描述。同一模式在两个不同程序中的实现代码可能会不一样。单例模式。

游戏开发小Y的博客 12万+

C语言const浅析

C语言const解析

weixin_46527345的博客 1391

【软考高级架构】案例题考前突击6——大数据架构

前一类的数据主要由流量方以接口的方式提供(比如对接的腾讯广点通平台),后一类则是某网特有的数据,通过买家的浏览、下单、付款日志算出来。1. 在数据层面只维护一张包含所有指标的MySQL表,表中的stday字段作为索引,stday=当天的保存实时数据,stday<当天的保存离线数据。典型的大数据架构,除了Lambda架构之外,还有kappa架构,这两个架构的区别如下标所示,请补充表中空(1)-(4)第二,实时数据只对接了内部的kafka消息,没有实时的获取第三方的曝光、点击、浏览数据。

qq837993702的博客 66

C语言const的用法

1、const的用法 const是constant的缩写,意思是“恒定不变的”,它是定义只读变量的关键字。用const定义只读变量的方法很简单,就在定义变量时前面加const即可,如: const double pi = 3.1415926; 用const定义的变量的值是不允许改变的,不允许给它重新赋值,即使是赋相同的值也不可以。所以说它定义的是只读变量。这也就意味着必须在定义的时候就给它赋...

C语言技术网-码农有道 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C语言中的CONST使用

 C中的CONST使用const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。const的使用是c语言中一个比较微妙的地方,请看下面几个问题。  问题:const变量 和 常量   为什么下面的例子在使用一个const变量来初始化数组,ANSI C的编译器会报告一个错误呢?    const int n =

深度Java 9477

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

c语言中的const是什么

const用于声明常量,使得某个变量的值不可被改变。const可以与指针结合使用,形成不同的语法结构(指向常量的指针、常量指针、常量指针指向常量)。使用const可以提高代码的可读性、安全性,并帮助编译器优化代码。希望这些解释能帮助你更好地理解const在 C 语言中的作用!如果还有其他问题,欢迎继续提问。

zyqash的博客 1535

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

c语言const字符串,C语言之正确使用const

一、const用途const是一个C语言的关键字,它限定一个变量不允许被改变。1、const与基本类型const char m;//限定m不可变。2、const与指针1)、const在*前面const char *p; //*p是const,p可变char const * p;//*p是const,p可变2)、const在*后面char * constp;//p是const,*p可变3)、cons...

weixin_42134537的博客 3344

C语言中const用法

const;c语言;

2401_87087273的博客 1705

C语言中关于const关键字的用法及详解

C语言中关于const的用法及讲解超详细版!!!

qq_73814284的博客 5525

C语言 CONST修饰符详解

C语言中的CONST修饰符用于声明常量,其值不可修改,可提高代码安全性和可读性。CONST可修饰普通变量、指针(根据位置不同限制内容或指针本身)、函数参数和返回值。在指针使用中,const char和char const完全等价,但前者更常见。随着C标准演进(C89/C90到C11),CONST功能不断完善。最佳实践包括合理使用CONST、保持代码风格一致,并注意与#define的区别(CONST类型安全且有内存分配)。尽管可通过指针强制转换绕过CONST限制,但应避免这种危险操作。

狂奔的鸵鸟 1080

C/C++中的const

如果是 const 在 * 之前,如 const int *p ,表示指针 p 所指向的内容是常量,不能通过 p 来修改它指向的内容,但 p 本身可以指向其他地址;如果 const 在 * 之后,如 int * const p ,则表示指针 p 本身是常量,不能再指向其他地址,但可以通过 p 修改它指向的内容;- 在类中, const 成员函数是一个重要的概念。4).如果两个函数名相同,参数相同,但是一个是常函数一个是非常函数,那么这两个函数为函数重载,非常对象优先调用非常函数,常对象只能调用常函数。

2401_88249494的博客 2263

C中const用法

看来还是不够理解啊,一用到就会犹豫,然后反复尝试试出来结果。从网上摘点资料吧。 http://zhidao.baidu.com/question/345457720.html C中CONST的使用   const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解

长歌行 1076

C语言const函数

C语言中const关键字用于定义常量或限制函数参数的修改,主要用法包括:修饰函数参数防止内部修改、修饰返回值防止外部修改(如返回指针时)。相比#define宏,const具有类型安全、可调试等优势,但占用内存。复杂场景下建议使用内联函数替代宏以规避副作用。const是编译期检查机制,错误绕过可能导致程序崩溃。

qq_39833392的博客 761

深入体验c语言中const的多种多样的用法

const是一个C语言(ANSI C)的关键字,它限定一个变量不允许被改变,一定程序上提高程序的安全性和可靠性。虽然这个关键字看起来简单,但是实际上随着它限定位置不一样,产生的效果也各异。

tpc4289的专栏 3613

C语言,有关const

以前对于这个关键字,基本没用过。只是印象比较深的是看一些比较经典的库代码,会有很多这个字。比如函数传入指针,之前真没怎么细想,以为很复杂或者麻烦,其实,完全是由于懒惰和畏惧了。

weixin_40194697的博客 502

C语言:const的用法

有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。我们经常将 const 变量称为常量(Constant)。但我们通常采用第一种方式,不采用第二种方式。另外建议将常量名的首字母大写,以提醒程序员这是个常量。由于常量一旦被创建后其值就不能再改变,所以常量必须在定义的同时赋值(初始化),后面的任何赋值行为都将引发错误。运行结果: 100, 90, 80。

Dola的博客 1269
上一篇: 数据类型字节长度表
下一篇: c&amp;c++ 五大内存区
K行天下
博客等级 码龄19年 358粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值