C与C++区别(二)

C与C++区别(二),第1张

C与C++区别(二)

1.struct类型:C++中定义结构体变量不再需要struct关键字,并且结构体中可以包含函数,函数在结构体中声明,结构体外访问。结构体中的变量必须用结构体变量访问。 *** 作如下:

#include
using namespace std;
struct HU{//定义结构体
	int data=1;
	char str[20];
	void func();
};
void HU::func(){
	cout << HU::data<func();//访问结构体中的成员,也可以*p.成员
	while (1);
	return 0;
}

2.动态内存申请:C语言中:malloc 不带初始化;alloc带初始化;realloc重新申请;

                            C++中:new申请 ,如int*p=new int(不赋值),int*p=new int[3](申请一段内存),int*p=new int(3)(带初始化,只有一个对象),int*p=new int[3]{1,2,3}(带初始化);delete删除(delete有两种形式:delete 指针和delete [] 指针,后者代表释放一段内存)。struct类型访问struct中的元素必须作内存二次申请。

3.内存池:允许申请一段内存供给程序使用,综合管理内存。malloc内存在堆区,new内存在自由区。

void arraymemory(){
	 char* data = new char[1024];//事情的处理所有的内存源于data
	int* pstr = new(data)int[3]{1,2,3};//new(内存的初始位置)
	int* pstr1 = new(data + 12)int [3]{2, 3,4};//等效于int*pstr1 = new(pstr + 3)int [3]{2, 3,4};	
	for (int i = 0; i < 3; i++){
cout << pstr[i] << "t"< 

 4.string类型:包含文件#include(注意和strin.h的区别)

string基本 *** 作:一:拷贝:string str3=str2

                           二:赋值:直接赋值即可

                           三:链接:用+链接,没有减法.如:string str=str1+str2

                           四:比较:直接比较即可

# C++中的string不能用到C语言中的字符串处理函数

string类型用c_str()或者用data()转换到char*类型 

to_string 可以直接把数字转化成相应的字符串:string str=to_string(123)

C++中的字符串不包含,所以下标方式访问string类型时只需要数字符串的长度,如:

 string str={"imissyou"}

for(int i=0;i<8;i++){

cout<

}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5520757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存