Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >const修饰符的使用(修饰结构体指针,引用外部的const 变量)

const修饰符的使用(修饰结构体指针,引用外部的const 变量)

作者头像
lexingsen
发布于 2022-02-24 07:31:23
发布于 2022-02-24 07:31:23
56600
代码可运行
举报
文章被收录于专栏:乐行僧的博客乐行僧的博客
运行总次数:0
代码可运行

const修饰符的使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//const修饰变量为只读
const  int a = 10;
a = 20;//是错误的赋值
//指针变量   指针指向的内存  两个不同的概念
char buf[] = "helloworld";
//从左往右看,跳过类型,看修饰那个字符
//如果是*,说明指针指向的内存不能改变
//如果是指针变量,说明指针的指向不能改变,指针的值不能修改
const char *p = buf;
char const *p1 = buf;
//以上两条语句是等价的,都是修饰指针指向的内存不能改变。是对指针指向的内存空间的内容进行封锁。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const封锁的是指针变量,不能修改其指向,但是可以修改指针指向内存当中的内容。


char* const p2 = buf;
p2[1] = '3';//可以进行赋值
p2 = "hello";是错误的

const char * const p2 = buf;
//进行双重封锁,即既不能修改指针的指向,也不能修改指针指向内存当中的内容。

const修饰结构体指针

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//对结构体进行封锁
typedef struct 
{
    int a;
    int b;
}my_struct;

void fun1(my_struct *p)
{
    //结构体指针可以修改
    //结构体指针指向的内存也可以改变   
}

void fun2(my_struct const *p)
{
    //结构体指针可以修改    //如 p = NULL;   是可以修改的
    //结构体指针指向的内容不能修改    //p->a = 10    是错误的
}

void fun3(my_struct * const p)
{
    //结构体指针的指向不可以修改   p = NULL是错误的
    //结构体指针指向的内容可以修改  p->a = 10是可以修改的
}

void fun4(const my_struct * const p)
{
    //结构体指针的指向不可以修改
    //结构体指针指向内存当中的内容也不可以修改
}

如何引用其他.c文件中的const变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
extern const int a;//注意,不能再进行赋值,只能声明
printf("a = %d\n",a);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[C语言]初阶指针和结构体
内存:内部存储器,暂存程序/数据——掉电丢失 SRAM,DRAM,DDR,DDR2,DDR3。
IT编程爱好者
2023/04/12
5250
[C语言]初阶指针和结构体
C语言结构体指针_C语言函数返回结构体指针
问题定义:有时需要将不同类型的数据组合成一个有机的整体,以便于使用,就类似于sql中的存储一样,随着语言层次的增高封装性是越来越大的。如:
全栈程序员站长
2022/11/01
3.7K0
C语言结构体指针_C语言函数返回结构体指针
C语言基础总结
我学习的第一门编程语言是Java,所以之前一直没有系统学习过C语言。这篇文章主要就是我学习过程的一个总结,方便以后复习查看。
害恶细君
2024/09/16
1780
C语言基础总结
C++快速扫盲(基础篇)
**注意:**与while的区别在于do…while会先执行一次循环语句,再判断循环条件
zstar
2022/06/14
7840
指针与函数和结构体
做计算机二级的时候发现指针对函数和结构体的题目主要出现在选择题上,之前学的不清楚,导致在看到题的时候有种懵懵的感觉,之前对二维数组和指针的复习还不错,于是照着之前的方式开始翻书复习、网上查阅。博客记录等来了解和学习。
布衣者
2021/09/07
5370
一个结构体指针数组内存分配问题引发的思考
为了在程序运行过程中,将两个结构体数组合并成一个大的结构体,在节省空间的基础上,我使用一个大的结构体指针数组,来将其元素分别指向结构体数组中的结构体。
C语言中文社区
2022/05/31
1.1K0
一个结构体指针数组内存分配问题引发的思考
C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻
如果问C语言中最重要、威力最大的概念是什么,答案必将是指针!威力大,意味着使用方便、高效,同时也意味着语法复杂、容易出错。指针用的好,可以极大的提高代码执行效率、节约系统资源;如果用的不好,程序中将会充满陷阱、漏洞。
刘盼
2021/02/12
8060
C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻
C++基础语法
包含了一个iostream的文件头。头文件作为一种包含功能函数、数据接口声明的载体文件,通常编译器通过头文件找到对应的函数库,把引用的函数实际内容导出来。
全栈程序员站长
2022/07/13
9590
熬夜整理的万字C/C++总结(二),值得收藏
假如我们定义了 char a=’A’ ,当需要使用 ‘A’ 时,除了直接调用变量 a ,还可以定义 char *p=&a ,调用 a 的地址,即指向 a 的指针 p ,变量 a( char 类型)只占了一个字节,指针本身的大小由可寻址的字长来决定,指针 p 占用 4 个字节。
C语言与CPP编程
2021/08/03
1.3K0
熬夜整理的万字C/C++总结(二),值得收藏
一万六千字详解C语言struct 结构体与 union 共用体
struct即结构体,C程序中经常需要用相关的不同类型的数据来描述一个数据对象。例如,描述学生的综合信息时,需要使用学生的学号、姓名、性别等不同类型的数据时,像这种数据类型总是在一起出现,那么我们不如把这些变量装入同一个“文件夹”中,这时用的关键字struct声明的一种数据类型就是表示这个“文件夹”的使用。那么在说明和使用之前必须先定义它,也就是构造它。如同在说明和调用函数之前要先定义一样。
C语言中文社区
2022/11/08
2.1K0
一万六千字详解C语言struct 结构体与 union 共用体
C语言 | 结构体指针
在C语言中,指向结构体对象的指针变量既可以指向结构体变量,也可指向结构体数组中的元素。
小林C语言
2021/05/06
2.2K0
C语言 | 结构体指针
C语言知识总结——宏,枚举,结构体,共用体
以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶段将用define定义的来内容进行了替换。因此在程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。define定义的常量,预处理时只是直接进行了替换,,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。,因此在编译时它不对宏的定义进行检查,作用域不影响对常量的访问 。它的常量值只能是字符串或数字。 该命令有两种格式:一种是简单的常量宏定义, 另一种是带参数的宏定义。
C语言与CPP编程
2021/04/30
2.4K0
结构体和结构体指针的区别
上述定义了一个名为Student的结构体,包含了三个成员变量id、name和age,分别表示学生的学号、姓名和年龄。
小李很执着
2024/06/15
1930
结构体
一、什么是结构体 •1. C语言中的数组,用法跟其他语言差不多。当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。 • •2.在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数据都具有不同的类型,姓名可以是字符串类型,年龄可以是整型,身高可以是浮点型。 • •3.为此,C语言专门提供了一种构造类型来解决上述问题,这就是结构体,它允许内部的元素是不同类型的。 二、结构体的定义 •1
用户1941540
2018/05/11
1.6K0
C语言结构体数组、指针与函数-学习二十八
本文最后更新于2022年02月24日,已超过4天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
XG.孤梦
2022/03/01
1.1K0
C语言结构体数组、指针与函数-学习二十八
C语言指针详解
这不是我第一次写关于C指针的文章了,只是因为指针对于C来说太重要,而且随着自己编程经历越多,对指针的理解越多,因此有了本文。然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识。所以我想通过一篇文章来尽可能的讲解指针,以对得起这个文章的标题吧。
用户7886150
2020/12/14
2.2K0
C语言初阶(七) - 指针、结构体
计算机的内存中有许许多多的储存单元(大小为一个字节),这些储存单元都被进行了编号,每个储存单元都有唯一的编号,称之为储存单元的地址。
怠惰的未禾
2023/04/27
4750
C语言初阶(七) - 指针、结构体
江哥带你玩转C语言 | 14 - 结构体-枚举-共用体
struct Student { int age; struct Student stu; };
极客江南
2021/07/11
7870
【C 语言】结构体相关 的 函数 指针 数组
作者 : 万境绝尘 转载请注明出处 : http://www.hanshuliang.com/?post=30 . 结构体概述 : 结构体是 多个 变量的集合, 变量的类型可以不同; -- 可进行的操
韩曙亮
2023/03/27
3K0
C语言入门系列之10.结构体和共用体
引入: 有时需要将不同类型的数据组合成一个有机的整体,以便于引用。 例如,一个学生有学号、姓名、性别、年龄、地址等属性,需要定义int num; char name[20]; char sex; int age; int char addr[30];等属性,如下:
cutercorley
2020/07/23
1.2K0
C语言入门系列之10.结构体和共用体
相关推荐
[C语言]初阶指针和结构体
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档