C易错注意之const修饰指针,含char类型计算,位段及相关经典易错例题

news2025/11/5 4:45:57

目录

前言 

一:const修饰指针

1.const修饰变量

2.const 修饰指针 

1.const int*p=&m;

2. int* const p=&m;

3. int const *p=&m;

4. int const *const p=&m;

5.总结 

总之一句话为:左定值有定向

二:关于计算中char类型数据的特殊转换

1.关于char类型数据的整型提升

2.关于signed char和unsigned char的数据取值范围和循环

1.signed char和char数据的取值范围及循环

2.unsigned char类型数据的取值范围和循环 

3.关于char类型数据计算中的经典易错例题 

1.例题一​编辑

2.例题二 

3.例题三 

4.例题四 

5.例题五 

6.例题六 

三:结构体实现位段 

1.位段的介绍

2.位段的内存分配 

3.位段使用的注意事项 

4.应用

接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧

前言 

在c语言中常常会遇到一些用const修饰的指针或变量,而且const位置不同表示含义不同,容易出现错误,计算char类型数据时常常会忘记char类型的取值范围,循环等导致出错,还有用结构体来实现位段,用来节省空间,接下来将逐一介绍

一:const修饰指针

1.const修饰变量

我们知道一个变量是可以修改的,如果将变量的地址给一个指针变量,可以通过指针改变变量的值。那么如果我们不希望改变变量的值,那么就将要用到const来修饰

#include<stdio.h>
int main()
{
   const int m=0;//此时m具有了常属性,不能被修改,但本质上那还是变量,为常变量
   //但在c++中const修饰的变量为常量
   m=20;//这种写法是错误的
   int *p=&m;
   *p=20;//这种是被允许的
   const修饰变量是不能直接通过修改变量的值,但可以通过间接的方法如通过指针来修改
}

2.const 修饰指针 

const修饰指针有四种形式分别为

const int*p=&m;

int* const p=&m;

int const *p=&m;

int const *const p=&m;

我们依次介绍举例说明

1.const int*p=&m;

2. int* const p=&m;

3. int const *p=&m;

4. int const *const p=&m;

5.总结 

const修饰指针变量的时候,放在*的右边,限制的指针变量本身,指针变量不能再指向其他变量,但可以通过指针变量来修改指针变量所指向的内容

const修饰指针变量的时候,放在*的左边,限制的是指针所指向的内容,不能通过指针来修改指向的内容,但可以修改指针变量本身,指针变量能指向其他变量

既放左边又放右边时,限制的指针变量本身和指针所指向的内容,指针变量不能再指向其他变量,不能通过指针来修改指向的内容

总之一句话为:左定值有定向

二:关于计算中char类型数据的特殊转换

1.关于char类型数据的整型提升

2.关于signed char和unsigned char的数据取值范围和循环

1.signed char和char数据的取值范围及循环

2.unsigned char类型数据的取值范围和循环 

3.关于char类型数据计算中的经典易错例题 

1.例题一
2.例题二 

3.例题三 

4.例题四 

5.例题五 

6.例题六 

三:结构体实现位段 

1.位段的介绍

1.位段的成员必须是 int unsigned int signed int ,char
2.位段的成员名后边有⼀个冒号和⼀个数字

2.位段的内存分配 

1. 位段的成员可以是 int unsigned int signed int 或者是 char 等类型
2. 位段的空间上是按照需要以4个字节( int )或者1个字节( char )的⽅式来开辟的。
3. 位段涉及很多不确定因素,位段是不跨平台的,注重可移植的程序应该避免使⽤位段。
4.申请到的一块内存中,从左往右使用还是从右往左使用是不确定的;剩余的空间,不足一个成员使用时,是浪费还是继续使用是不确定的
5.栈是从高地址向低地址使用的,数组是随着下标的增长,由低地址向高地址使用
如:
struct S
{
 char a:3;
 char b:4;
 char c:5;
 char d:4;
};
struct S s = {0};
s.a = 10;
s.b = 12;
s.c = 3;
s.d = 4;

在开辟空间时

 

3.位段使用的注意事项 

位段的⼏个成员共有同⼀个字节,这样有些成员的起始位置并不是某个字节的起始位置,那么这些位
置处是没有地址的。内存中每个字节分配⼀个地址,⼀个字节内部的bit位是没有地址的。
所以不能对位段的成员使⽤&操作符,这样就不能使⽤scanf直接给位段的成员输⼊值,只能是先输⼊
放在⼀个变量中,然后赋值给位段的成员。

4.应用

在一些网络数据包中被广泛应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1569791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI工作站设计方案:903-多路PCIe3.0的单CPU 学习型AI工作站

多路PCIe3.0的单CPU 学习型AI工作站 一、机箱功能和技术指标&#xff1a; 系统 系统型号 ORI-SR500 主板支持 EEB(12*13)/CEB(12*10.5)/ATX(12*9.6)/Mi cro ATX 前置硬盘 最大支持2个3.5寸1个2.5寸SATA 硬盘2个2.5寸SATA 硬盘 &#xff08;背部&#xff09; 电源类型 C…

Mybatis--TypeHandler使用手册

TypeHandler使用手册 场景&#xff1a;想保存user时 teacher自动转String &#xff0c;不想每次保存都要手动去转String&#xff1b;从DB查询出来时&#xff0c;也要自动帮我们转换成Java对象 Teacher Data public class User {private Integer id;private String name;priva…

gpt国内怎么用?最新版本来了

claude 3 opus面世后&#xff0c;这几天已经有许多应用&#xff0c;而其精确以及从不偷懒&#xff08;截止到2024年3月11日还没有偷懒&#xff09;的个性&#xff0c;也使得我们可以用它来首次完成各种需要多轮对话的尝试。 今天我们想要进行的一项尝试就是—— 如何从一个不知…

PWM技术的应用

目录 PWM技术简介 PWM重要参数 PWM实现呼吸灯 脉宽调制波形 PWM案例 电路图 keil文件 直流电机 直流电机的控制 直流电机的驱动芯片L293D L293D引脚图 L293D功能表 直流电机案例 电路图 keil文件 步进电机 步进电机特点 步进电机驱动芯片L298 L298引脚图 L…

MySQL、Oracle查看字节和字符长度个数的函数

目录 0. 总结1. MySQL1.1. 造数据1.2. 查看字符/字节个数 2. Oracle2.1. 造数据2.2. 查看字符/字节个数 0. 总结 databasecharbyteMySQLchar_length()length()Oraclelength()lengthB() 1. MySQL 1.1. 造数据 sql drop table if exists demo; create table demo (id …

c++宏有什么离谱操作?

Boost.Preprocessor确实是一个非常强大而复杂的C宏库&#xff0c;专门用于元编程&#xff0c;即在编译时进行代码生成和变换。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习编程不妨点个关注&#xff0c;给个评论222&…

卷积神经网络-池化层

卷积神经网络-池化层 池化层&#xff08;Pooling Layer&#xff09;是深度学习神经网络中的一个重要组成部分&#xff0c;通常用于减少特征图的空间尺寸&#xff0c;从而降低模型复杂度和计算量&#xff0c;同时还能增强模型的不变性和鲁棒性。 池化操作通常在卷积神经网络&am…

Nativefier - 将网页变为软件

Nativefier 是一款命令行工具&#xff0c;可以轻松地为任何网站创建 "桌面应用程序"&#xff0c;而无需大费周章。应用程序由 Electron&#xff08;内核使用 Chromium&#xff09;封装成操作系统可执行文件&#xff08;.app、.exe 等&#xff09;&#xff0c;可在 Wi…

GD32F470_MQ-2烟雾检测传感器模块移植

2.5 MQ-2烟雾检测传感器 MQ-2型烟雾传感器属于二氧化锡半导体气敏材料&#xff0c;属于表面离子式N型半导体。处于200~3000摄氏度时&#xff0c;二氧化锡表面吸附空气中的氧&#xff0c;形成氧的负离子吸附&#xff0c;使半导体中的电子密度减少&#xff0c;从而使其电阻值增加…

接口的总结与面试题

接口本身不能创建对象&#xff0c;只能创建接口的实现类对象&#xff0c;接口类型的变量可以与实现类对象构成多态引用。 声明接口用interface&#xff0c;接口的成员声明有限制&#xff1a; &#xff08;1&#xff09;公共的静态常量 &#xff08;2&#xff09;公共的抽象方…

LeetCode-热题100:2. 两数相加

题目描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都…

基于springboot大学生兼职平台管理系统(完整源码+数据库)

一、项目简介 本项目是一套基于springboot大学生兼职平台管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…

LabVIEW电动汽车供电设备接触电流测试

LabVIEW电动汽车供电设备接触电流测试 随着电动汽车技术的迅猛发展和普及率的不断提高&#xff0c;电动汽车供电设施的电气安全显得尤为重要。为了优化电动汽车供电设备接触电流的测试方案&#xff0c;设计了一种基于LabVIEW的测试方案&#xff0c;通过平台校准测试和电动汽车…

Linux第2课Windows下的环境配置-虚拟机安装

文章目录 Linux第2课Windows下的环境配置-虚拟机安装一、VMware虚拟机的安装&#xff08;一&#xff09;安装VMware&#xff08;二&#xff09;启动电脑本地的VMware相关服务 二、VirtualBox安装 Linux第2课Windows下的环境配置-虚拟机安装 本节课程提供了两种虚拟机的安装方法…

程序员延寿指南:科学延寿 20 年 | 开源日报 No.214

geekan/HowToLiveLonger Stars: 28.7k License: Unlicense HowToLiveLonger 是一个程序员延寿指南项目。 该项目旨在提供关于如何延长寿命的指南&#xff0c;特别是针对程序员群体。该项目包括术语、目标、关键结果、分析、行动和证据等内容&#xff0c;涵盖了各种与健康相关的…

不同路径- java

题目描述: 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff…

模块化编程:AMD 和 CMD 的魅力

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

特定领域软件体系结构

1.DSSA的定义 简单地说&#xff0c;DSSA&#xff08;Domain Specific Software Architecture&#xff09;就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。 从功能覆盖的范围的角度有两种理解DSSA中领域的含义的方式&#xff1a; &#xff08;1&#x…

前端三剑客 —— CSS ( 坐标问题 、定位问题和图片居中 )

前期内容回顾&#xff1a; 1.常见样式 text-shadow x轴 y轴 阴影的模糊程度 阴影的颜色 box-shadow border-radio 实现圆角 margin 内边距 padding 外边距 background 2.特殊样式 媒体查询&#xff1a;media 自定义字体&#xff1a;font-face { font-family:自定义名称&#…

【随笔】Git -- 高级命令(中篇)(七)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…