百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> C中字符串的定义办法及注明实例-
分享文章到:

C中字符串的定义办法及注明实例-

发布时间:08/01 来源:未知 浏览: 关键词:
<metacharset"utf-8">告诉阅读器要用utf-8来解释,同时,保留文档时,编码格局也要为utf-8格局。 在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中字符串的定义办法及注明实例的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板