常量指针和指针常量

基于ESP32的智能厨房控制系统开发 随着智能家居技术的发展,越来越多的家庭开始将传统的厨房设备进行智能化改造,以提高烹饪效率和生活质量。智能厨房控制系统是物联网(IoT)应用的重要组成部分,它将家居设备、传感器和网络结合起来,提供便捷的控制与监测功能,使厨房的烹饪过程更加智能、便捷和安全。基于ESP32的智能厨房控制系统不仅能够实现远程控制和监控,还能实现温度、湿度、烹饪状态的实时反馈,甚至具备智能化的推荐和自动化控制能力。ESP32是一款功能强大、集成度高的嵌入式开发平台,具有Wi-Fi和蓝牙双模通信能力,广泛应用于物联网设备的开发。 阅读详情

指针常量与常量指针是c语言中两个比较容易混淆的概念。

  (1)const char *p;

  (2)char * const p = a;

  (3)cahr * p = "abc";


语句(1)定义了一个常量指针,即指向一个常量的指针,指向的内容是常量,不可修改,放在常量区的,但指针本身可以被修改,即“*p = 'b'”是非法的,

*p 是p指向的常量的第一个字符,是个常量,不能改变的。“  p = & q” 这是可以的,指针可以指向不同的地址。

 

语句(2)定义了一个指针常量,即指针本身是个常量,不可以被修改,但指针指向的内容可以被修改,一开始定义时让它指向数组a,“*p = b"这是可以的,

但” p = &b“是非法的。


注意:

const 常量*指针,当const在*之前就是常量指针,在*之后就是指针常量。例如:”const char *p“即 char*p 是个常量,所以内容是常量;”char * const p"

即指针p是个常量。


语句(3)中"char *p"定义的是一个指针变量怕,指向字符串abc的首地址。这里特别要注意,在c语言中,(3)中定义的是一个变量字符串,

它被放在静态存储区的常量存储区存储,而p是一个指针变量,放在栈上。如果“*p = 'b'"在编译时能通过,但是在运行时就会出现错误,

因为你试图去改变常量区的内容。


总之常量指针指向的内容不可变,单地址可以改变,即指针可以指向别的地址;

而指针常量是指指针本身不可变,而内容可以改变,在这里要注意两点:

1.如果指针常量指向的是字符指针变量,那么当修改*p时原则上能够修改,在编译时能通过,但在运行时不能通过,因为它试图去修改变量区的内容,显示是非法的。

2.当指针常量指向另一个指针时,当这个指针指向别的内容时,那么指针常量还是指向原来的内容。例如:

char * q = "123";

char * q1 = "456";

char * const p = q;

q = q1;

p指向的内容还是123.


【100%通过率】华为od机试C卷【贪吃的猴子】Java&Go 实现 一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。猴子获取香蕉,每次都只能从行的开头或者未尾获取,并且只能获取N次,求猴子最多能获取多少根香蕉。第一次获取香蕉为行的开头,第二次获取为行的末尾,因此最终根数为4+3 =7。全部获取所有的香蕉,因此最终根数为1+2+3 = 6。第二行为数组numbers的值每个数字通过空格分开。1:简单题目,两个指针分别指向头尾,逐个对比即可。第一行为数组numbers的长度。第三行输入为N,表示获取的次数。 阅读详情

相关推荐

ThingsKit物联网平台产品管理之物模型

物模型是ThingsKit物联网平台为产品定义的数据模型,用于描述产品的功能。本文介绍物模型相关概念和使用限制。

云腾五洲官方博客 1174

才搞清楚常量的存储位置

 一个形如42的值被称为字面值常量。字面值常量的形式和值决定了常量的类型。例如0x42是16进制表示的整型常量。‘a'是char型字面值。字面值常量顾名思义由字面意思表示,是常量。字面值常量在程序中是直接表示的,整型直接写出大小,字符直接写出字符。一个字面值常量在编译时被直接解析为立即数,编译器内部维护字面值常量的类型。      常量表达式是指在编译过程中,该表达式的值不会改变,且编译过程中可以...

taoqilin的专栏 1万+

告别深度学习!用5个麦克风搞定多说话人分离:ReTM算法保姆级教程

本文详细介绍了ReTM算法,这是一种无需深度学习、仅需5个麦克风即可实现多说话人语音分离的创新信号处理方法。它通过估计相对传递矩阵,利用空间物理信息在混响环境中分离语音,具有数据需求低、计算复杂度小、无需先验几何信息等优势,特别适合嵌入式设备和资源受限场景。

desk3的博客 160

C++二维数组,指针常量与常量指针、常量参数传递、常量变量存储地址

#include using namespace std; void f1(int){} void f2(int&){} void f3(int*&){}   int main() {    int a[2][2]={1,2,3,4};//a[i]实际上是第i+1行的首地址,且为常量指针        const int

u010968153的专栏 1174

MFC 修改CheckBox的文本颜色方法

设置主题 这一步是必须的,不可省略。 BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 // 设置主题 HWND

Kim的博客 2249

const int *p和int * const p的区别(指向常量的指针与常量指针)

1.常量指针(Constant Pointers) int * const p 先看const再看* ,是p是一个常量类型的指针,不能修改这个指针的指向,但是这个指针所指向的地址上存储的值可以修改。 2.指向常量的指针(Pointers to Constants) const int *p 先看*再看const,定义一个指针指向一个常量,不能通过指针来修改这个指针指向的值。 ...

小白之路 463

Arduino程序设计(十)8×8 共阴极LED点阵显示(MAX7219)

本文主要介绍8×8 LED点阵显示实验,分别是:1、介绍MAX7219点阵模块;2、点阵显示部分图形;3、点阵显示数字 0~9 及 26 个英文字母。1、通过上述两个点阵实验,了解了8*8点阵显示的基本原理;2、通过SPI通信控制点阵显示,学会了Arduino用SPI通信方式控制外设。

Alice的博客 1万+

字符串常量指针、常量指针和指针常量区别

char *p = "abcd"; *p = 'b'; printf("%c\n", p[0]); 以上代码有什么问题?    首先,编译器在常量区保存一个字符串abcd,其内容不许修改。 char *p = "abcd"; // p是一个指针,直接指向常量区,修改p[0]就是修改常量区的内容,这是不允许的。 char p[] = "abcd"; // 编译器在栈上创建一个字符

lee_u的博客 5831

通过Netlink检测网线插拔

Android/Linux通过netlink编程检测网线插拔。

阿xin*的嵌入式AI 1036

【Unity工具篇】| Unity项目中如何使用LuBan插件,详细集成步骤

前面写了一篇文章用于介绍LuBan的下载及快速使用方法:【Unity实战篇】| 实用插件LuBan,快速上手使用 本篇文章就来介绍一下将LuBan集成到自己的Unity项目的方法。 看完本篇文章之后,就可以直接把LuBan插件放到自己项目中进行配表和使用。

努力前行,总会成为自己心中的那道光 2万+

指针常量和常量指针

1、指针常量——指针类型的常量(int *const p) 本质上一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。用法如下: int a = 10, b = 20; int * const p = &a; *p = 30; // p指向的地址是一定的,但其内容可以修改 2、...

星空的博客 8万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

指针常量和常量指针详解

常量指针 定义:又叫常指针,可以理解为常量的指针,也即这个是指针,但指向的是个常量,这个常量是指针的值(地址),而不是地址指向的值。 关键点: 1.常量指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改; 2.常量指针可以被赋值为变量的地址,之所以叫常量指针,是限制了通过这个指针修改变量的值; 3.指针还可以指向别处,因为指针本身只是个变量,可以指向任意地址;   代码形式: int const* p; const int* p; 指针常量 定义:本质是一个常量,而.

qq_34729246的博客 7105

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

常量指针和指针常量的区别

const int* 与 int* const 的区别

weixin_46280821的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

指针常量和常量指针区别

1、指针常量——指针类型的常量(int *const p) 本质上一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。用法如下: int a = 10, b = 20; int * const p = &a; *p = 30; // p指向的地址是一定的,但其内容可以修改 2、常量指针——指向“常量”的指针(const int *p, int const *p) 常量指针本质上是一个指

居老师的博客 2万+

彻底理解——指针常量和常量指针、指向常量的常指针

前言   在汉语中,定语一般都放在中心词的前面,像C语言和C++语言这种技术性语言,更是如此。   所以定语重要还是中心词重要,肯定是中心词重要。   如:美丽的女孩 美丽的是定语 女孩是中心词   女孩肯定是重要,是本质。   同理,我们先不讲技术,先从字面意思来理解:指针常量、常量指针、函数指针、指针函数、数组指针、指针数组 指针常量 指针是定语,常量是中心词,所以指针常量本质是一个常量 常量指针 常量是定语,指针是中心词,所以常量指针本质是一个指针 函数指针 本质上是一个指针,那就

zhf的博客 8012

C++之指针常量、常量指针和常指针常量

C++之指针常量、常量指针和常指针常量

Serven的博客 1万+

区别:指针常量、指针变量、常量指针和常量指针常量

1.指针变量:指针值(即指针的指向)可以改变的指针,只能指向变量; 2.指针常量:指针值(即指针的指向)不能改变的指针,只能指向变量,但可以修改指向的实体变量的值; 3.常量指针:指向常量的指针,所以不能修改指向的实体的值,但可以修改指针的指向(即可以指向别的常量,必须是常量); 4.常量指针常量:指向常量,指针不能改变指向的实体的值,指针值(即指针的指向)也不能改变(是2和3的结合)。举例子

CYJ2014go的博客 7194

指针常量和常量指针的区别

C语言 指针常量和常量指针的区别

NanChen的博客 2578

指针常量和常量指针的区别和联系

而指针常量和整形常量一样,不同的是指针常量。2)常量指针:本质上还是指针,不过前面的修饰语“常量”,限制了该指针,只能指向常量。1:指针常量:先定义指针 (int *)(把指针定义符号理解为指针),第二,定义常量中的常(const),第三定义常量中的量,也就是信号名称 p1。把上面记下来,然后,可以自己在草稿纸上,写上几遍,于是我们便记住了指针常量和常量指针的定义形式了。首先:需要指出的是指针常量和常量指针都是和const有关系。2:常量指针:先定义常量中的常 int const ,第二定义指针*p2。

WE_BIG的博客 2614

指向常量的指针和常量指针;常量指针和指针常量;指向常量的常指针;

今天看书看到常量指针发现和我以前看到的常量指针怎么是反的,本来以为书上是错的,然后深究一下。其实都没错,是翻译的方式不同而已,其实指的一个意思。可以划分一下: 指向常量的指针和常量指针为一组说法,常量指针和指针常量为一组说法。 一、pointer to a constant 叫法:有两种不同的叫法也就是第一组中的指向常量的指针,第二组中的常量指针。 形式: long value = 9999L; const long *pvalue = &value; long const *...

qq_33598781的博客 1363

c++之指针常量和常量指针

指针常量和常量指针 1.常量指针 const int *PtrConst 或者是 int const *PtrConst (即const 在*的左边) 指向常量的指针,这里所说的“常量”其实在解引用时起到所谓常量的作用,并非是指向的变量就是常量,指向的变量既可以是非常量也可以是常量。总体意思是不能修改指向某变量的值。 让指针指向一个常量,可以防止使用指针来修改所指向的值。 1.常量指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改; 如:int a = 1; const in....

baidu_16370559的博客 4458
上一篇: 针对文件流的几个常见函数
下一篇: 语句if
wp1995
博客等级 码龄10年 29粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值