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

在c中定义字符串有下列几种形式:字符串常量,char数组,char指针

1.字符串常量

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

一个字符串存储在内存中。如: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”;  //定义字符串数组时必须指定数组大小(整型常量),在指定大小时,要确保数组的大小比预定的大一个,因为编译器会自动添加”。

                                             //多余的元素会初始化为”

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

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

       char *m = “hello,world”; //自动添加”

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

4.数组和指针

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

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

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

   数组形式:

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

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

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

    指针形式:

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

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

以上就是C中字符串的定义方法及说明实例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2910527.html

(0)
上一篇 2025年3月11日 04:34:00
下一篇 2025年2月19日 13:00:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css如何设置首行缩进2个字符

    css设置首行缩进2个字符的方法:可以利用text-indent属性来设置首行缩进2个字符,如【text-indent:2em;】。text-index属性用于规定文本块中首行文本的缩进,em是相对单位。 相关属性: text-indent…

    2025年3月10日
    200
  • css声明语句总是以什么结束

    CSS规则由两个主要的部分构成:选择器,以及一条或多条声明。选择器就是需要改变样式的HTML元素;每条声明由一个属性和一个值组成,css声明语句总是以分号“;”结束,声明组以大括号“{…}”括起来。 本教程操作环境:windows7系统、C…

    2025年3月10日
    200
  • 如何将html特殊字符编码转换成特殊字符?有什么方法

    本篇文章给大家带来的内容是关于如何将html特殊字符编码转换成特殊字符?有什么方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 备注:有时候我们会莫名其妙遇到一些特殊字符:  这些字符在网页上能正常显示,但是在APP特殊…

    2025年3月9日
    200
  • 如何在HTML中声明自定义属性?

    In this article, we will discuss how to declare a custom attribute in HTML. Custom attributes can be useful in HTML when…

    2025年3月9日
    200
  • 在JavaScript中,将所有声明放在顶部是一种好的做法吗?

    是的,将所有 JavaScript 声明放在顶部是一个很好的做法。让我们看一个例子 – 示例          JavaScript String match() Method            // all the var…

    2025年3月9日
    200
  • 如何在一个声明中设置不同的背景属性?

    CSS(层叠样式表)是设计网站视觉外观的强大工具,包括背景属性。使用CSS,可以轻松自定义网页的背景属性,创造独特的设计,提升用户体验。使用一个声明是设置各种背景属性的高效方式,对于网页开发人员来说,这有助于节省时间并保持代码简洁。 理解背…

    2025年3月9日
    200
  • 详解正则表达式 元字符

    许多程序设计语言都支持利用正则表达式进行字符串操作。正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。元字符可以匹配垂直制表符。下面给大家介绍正…

    编程技术 2025年3月8日
    200
  • ES6的变量的作用域与声明详解

    这次给大家带来es6的的作用域与声明详解,使用es6的变量的作用域与声明的有哪些,下面就是实战案例,一起来看一下。 变量的作用域与声明: 与es5相比;出现的最大区别就是:{ } ,它在es6词法环境中是一个块作用域;并且 规定变量必须 先…

    编程技术 2025年3月8日
    200
  • JS字符串去除连续及重复字符方法

    本文主要和大家分享js字符串去除连续及重复字符方法,希望能帮助到大家。 ()和umber 配合使用表示重复正则第number个括号内匹配到的内容,如:(d)表示重复第一个匹配块(d)即等价于如果(d)匹配到a,则表达式为aa 相应的可以:(…

    编程技术 2025年3月8日
    200
  • JS字符串剔除重复字符

    这次给大家带来JS字符串剔除重复字符,JS字符串剔除重复字符的注意事项有哪些,下面就是实战案例,一起来看一下。 ()和umber 配合使用表示重复正则第number个括号内匹配到的内容,如:(d)表示重复第一个匹配块(d)即等价于如果(d)…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论