您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 字符常量 >

C++ 如果在类中定义字符串常量?

发布时间:2019-07-02 07:24 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部static成员不能在累的定义体中初始化; 这个规则有一个例外 只要初始化式是一个常量表达式,整型const static就可以在类的定义体中初始化。

  展开全部在C中定义字符串有下列几种形式:字符串常量,char数组,char指针 1.字符串常量 即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志0字符,作为一个字符串存储在内存中。如:printf(%s,hello); //hello 如果字符串文字中间没有间

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

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

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

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

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

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

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

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

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

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

  const string Test::str =hello world;

  展开全部又是静态又是常量,好像不能用吧。追问是对字符串不可以,对原子类型是可以。

  我想问有有没有替换的方案,或提供一种比较的好的方案,让一个字符串是属于类的。

http://hdyabisizs.com/zifuchangliang/182.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有