• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > C中字符串的定义方法及说明实例

C中字符串的定义方法及说明实例

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含声明,字符等相关知识,匿名希望在学习及工作中可以帮助到您
在C中定义字符串有下列几种形式:字符串常量,char数组,char指针

1.字符串常量

即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志\0字符,作为

一个字符串存储在内存中。如:printf("%s","hello"); //"hello"

如果字符串文字中间没有间隔或间隔的是空格符,ANSI C 会将其串联起来。例:

char greeting[50] = "hello,and" "how are" "you";

等价于:

char greeting[50] = "hello,and how are you";

字符串常量属于静态存储类。静态存储是指如果在一个函数中使用字符串常量,即使是多次调用了这个函数,

该字符串在程序的整个运行过程中只存储一份。整个引号的内容作为指向该字符串存储位置的指针。这一点与

把数组名作为指向数组存储位置的指针类似。

2.字符串数组及其初始化

初始化例子:

char m[40] = "hello,world"; //定义字符串数组时必须指定数组大小(整型常量),在指定大小时,要确保数组的大小比预定的大一个,因为编译器会自动添加'\0'。

//多余的元素会初始化为'\0'


char m={'h','e','l','\0'}; //注意标志结束的空字符,若没有它,得到的只是一个字符数组而不是字符串

3.利用char指针定义字符串

char *m = "hello,world"; //自动添加'\0'

注意:此时字符串指针m指向字符串常量,不成用*(m+1)='o'修改此常量,因为这个字符串常量放在常量区不能被修改

4.数组和指针

数组形式和指针形式有什么不同呢?

数组形式: char m[40] = "hello,world";

指针形式: char *m = "hello,world";

数组形式:


编译器会把数组名m看作是数组首元素的地址&m[0]的同义词,m是个地址常量。可以用m+1来标识数组里的下一个元素,但不能使用++m,增量运算符只能在变量前使用, 而不能在常量前使用。

m[40]在计算机内存中被分配一个有40个元素的数组(其中每个元素对应一个字符,还有一个附加的元素对应结束的空字符'\0')。每个元素都被初始化为相应的字符。

通常,被引用的字符串存储在可执行文件的数据段部分;当程序被加载到内存中时,字符串也被加载到内存中,把被引用的字符串复制到数组中

指针形式:

指针形式(*m)也会在静态存储区为字符串预留空间。此外,一旦程序开始执行,还要为指针变量m另外预留一个存储位置,以在该指针变量中能够存储字符串的地址。

m指向字符串的第一个字符,可用++m指向第二个字符。 指针m是个变量。

以上就是C中字符串的定义方法及说明实例的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • HTML5 声明兼容IE的写法
  • C中字符串的定义方法及说明实例
  • 两种常用编程的比较 声明式和命令式
  • HTML5 声明兼容IE的写法_html5教程技巧

相关文章

  • 2017-08-06会走动的图形html5时钟示例
  • 2018-12-03html5 main标签是什么意思?html5 main标签作用的详细介绍
  • 2018-12-03html5 footer标签怎么用?footer标签的用法实例
  • 2017-08-06html5 Canvas画图教程(1)—画图的基本常识
  • 2018-12-03HTML5.1 里的新东西
  • 2018-12-03HTML5注册表单的自动聚焦与占位文本示例代码_html5教程技巧
  • 2018-12-03这两个js有冲突吗?
  • 2018-12-03如何看待腾讯公司的X5浏览器内核?
  • 2018-12-0322个HTML5 技巧三
  • 2017-08-06HTML5 与 XHTML2

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 如果原先没有 HTML 和 CSS 的基础,可以直接学 HTML5 和 CSS3 吗?
    • 详解通过HTML5 Canvas实现图片的平移及旋转变化的方法_html5教程技巧
    • html5整理
    • 前端新人愿意以付出免费劳动力为代价,在职场上获得提升,可行吗?
    • HTML5实现下雪效果的实例代码分享
    • HTML5-定制input元素的代码实例详解
    • 整理HTML5中支持的URL编码与字符编码_html5教程技巧
    • 动画工具DragonBones的常用术语和使用方法介绍(图)
    • HTML5制作贪吃蛇游戏
    • 分享一款HTML5小游戏绵羊快跑

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有