c语言向文件中写入字符串_C语言中定义字符串的两种方式及其比较

f442b7b72c1ddeee0f1c4568186e6833.png

先看如下代码:

20f087bee32e9f4b19740bdb0bd384ca.png

以上用两种方式定义一个字符串:

1、定义一个char * 类型指针,指向字符串首字符首地址。

2、定义一个数组,数组里存放元素为字符串各个字符+'0',其中'0'为码0值,编译器会自动在字符串的末尾添加此值。

先看这两个"变量"分别是存在内存的哪个区域,(后面可知string1为常量)修改代码如下,打印这两个“变量”的内存地址,查看运行结果:

633f2c03bafc85707fe902ef0ddcbff7.png

查看进程的内存分布情况,(详情请查看:RobotCode俱乐部:手撕虚拟内存(1)——字符串在虚拟内存中的段位置与/proc虚拟文件系统),string1内存首地址为0x80485a0,string2内存首地址为0bfaebfd8。如下图,可知这两种定义方式,一种位于只读区(0x8048000 < 0x80485a0 < 0x8049000),一种位于Stack区(0xbfacd000 < 0bfaebfd8 < 0xbfaee000)。可知,string1为常量(只读的,权限为r),在编译时就确定了。string2存放在栈上,运行时确定。这也决定了,定义string1的方式适用于定义字符串常量,string2方式适用于字符串变量可能需要被修改的情况。同时需要注意的是,未必定义在函数体里的“变量”都会分布在栈上,如这里的字符串常量,及static修饰的局部变量,他们都是分布在全局静态区,由编译器在编译时决定,而非函数运行时动态分配。另外全局静态区的变量生命期与整个进程的生命期相同,大于等于函数的生命期。

e5c29a07abe6b07afd0e47bf795b0a34.png

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

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

相关文章

前端学习(2879)歌谣学习篇原生js和canvas实现弹幕功能

我是歌谣 放弃很难 坚持一定很酷 2021继续加油 目录结构 文件地址 源码地址后面可见 源码文件 index.css body { margin: 0; } .container { width: 1000px; margin: 0 auto; } .video-wrapper { position: relative; } .video-wrapper video { width: 100%; } .video…

汤姆逊灯

由 MIT (Massachusetts Institute of Technology) 哲学教授在1954年提出&#xff1a;考虑一盏开关由一个复杂的定时器控制的灯。实验开始时&#xff0c;灯是开着的&#xff0c;并且正好开一分钟。这一分钟结束时定时器把灯关闭&#xff0c;这样持续半分钟。之后&#xff0c;又把…

python def函数_Python教程之Lambda表达式知识概述

在Python中&#xff0c;除了def之外&#xff0c;还提供了一种生成函数对象的表达式形式&#xff0c;即Lambda表达式&#xff0c;它可以创建小的匿名函数&#xff0c;起到一个函数速写的作用。接下来的好程序员Python学习课程就给大家分享Lambda表达式相关的知识点。Lambda表达式…

MySQL全文索引模糊查询_mysql全文索引之模糊查询

旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。不过新版的MySQL5.6.24上InnoDB引擎也加入了全文索引&#xff0c;所以具体信息大家可以随时关注官网&#xff0c;下面我来谈谈mysql全文索引的用法,网上很多啦&#xff0c;我只讲讲我所了解滴部分哈&am…

html中内容超出显示省略号的方法

html中内容超出显示省略号的方法 本博客主要介绍 前端开发中文本过多&#xff0c;以省略号显示。 效果如图&#xff1a; 单行&#xff1a; <!--单行--> <p class"pl">这个属性定义溢出元素内容区的内容会如何处理。如果值为 hidden&#xff0c;当点击hid…

vue 多选自动触发_Vue,初次邂逅(二)

一、前言二、Vue常用指令2.1 什么是指令&#xff1f;指令 (Directives) 是带有 v- 前缀的特殊特性。指令特性的预期值是&#xff1a;单个 JavaScript 表达式。指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于 DOM。 例如…

string.Empty 和 并不总是可以互换的

在 C# 中&#xff0c;大多数情况下 "" 和 string.Empty 可以互换使用。比如&#xff1a;strings "";strings2 string.Empty;if(s string.Empty) { // }但是我发现有一种情况下只能是用常数形式&#xff1a; "", 而不能使用 string.Empty 这个静…

pythonweb服务器部署iis_IIS部署python Web(FLASK试例)

开发环境&#xff1a;python3.6 、win7、pycharm20171、安装及配置IIS控制面板中>-程序和功能>-打开或关闭WINDOWS功能配置Internet信息服务配置万维网服务2、安装URL重写组件下载安装Web平台安装程序 5.0 (WEB PLATFORM INSTALLER 5.0)安装URL Rewrite 2.03、安装wfastc…

WPF开源框架项目

好久博客未更新新博文了&#xff0c;今天介绍一个WPF开源框架MaterialDesignInXamlToolkit废话不多说先让我们来看看框架得几张截图 让我们一起来看看源代码得结构如下图 接下我们运行代码看看运行后得截图 通过查看源代码, 由于是基于原生得状态进行修改样式及动画达到, 所以引…

rust房屋建造蓝图_都说蓝图,而不是白图、红图,你知道为什么?

文学上喜欢把对未来的构想或计划&#xff0c;称为蓝图。蓝图(英文&#xff1a;blueprint)在工业上指“蓝图纸”(晒图纸的俗称)&#xff0c;因为图纸是蓝色的&#xff0c;所以被称为“蓝图”。也许是因其具有易于保存&#xff0c;不会模糊&#xff0c;不会掉色&#xff0c;不易玷…

洛谷P1085不高兴的津津

转载于:https://www.cnblogs.com/LITTLESUNwl/p/10417533.html