如题所述
c语言* string是什么
这是指C语言中的库文件,只有当需要调用相应的函数时,才需要添写该库文件至头文件
C语言string是什么数据类型
string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。
c语言为什么要加个string
string是一个库的名字,如果你需要用到这个库里面的函数,就需要#include,里面含有的函数比较多,在调用时,每个函数都有各自的格式,一般在c语言课本后面的附录中都有介绍的。
编程语言中的字符串,用双引号引起来的几个字符.如"Abc","一天"。String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象。
这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。
c语言字符串表示方法
1.C语言中字符串的表示方式有两种:字符指针和字符数组
2.字符指针表示字符串
从编译器角度分析:
例如:char*p="linux";p是字符指针,"linux"字符串本身,当编译器遇到这种字符串表示时,会将指针和字符串本身分开处理,字符指针p是一个变量,将其放在栈上,而字符串本身"linux"则被存放在代码段,其首地址赋给p。
从内存角度分析:
例如:char*p="linux";首先对字符指针p,会为其在栈上开辟一个4字节的空间,而"linux"字符串本身,会在代码段为其开辟一个6字节的存储空间,将该存储空间的首地址赋值给p。
3.字符数组表示字符串
从编译器角度分析:
例如:chara[]="linux";a是字符数组,编译器会将其放在栈上,而"linux"字符串本身却只存在于编译器中,即编译器只是将它用来初始化字符数组a后丢弃掉。
从内存角度分析:
例如:chara[]="linux";定义了一个字符数组a,在栈上开辟一个6字节的存储空间,而"linux"字符串本身由于只存在于编译器中,所以不需要为此开辟存储空间。
4.两种表示字符串的差别
字符数组本身是数组,数组自身自带内存空间,可以用来存储东西;而字符指针是指针,本身永远只占4字节,而且这4字节还不能用来存储有效数据,所以只能把有效数据存放到其他的地方,然后把首地址存放在p中。