在c++中毫无疑问和内存进行一个交互的过程
而在java中则是对象;
先说问题 java 之中
int []text=new int[5];
for(int i=0;i<5;i++)
{
text[i]=i+1;
}
和直接赋初值一样的
int []text={1,2,3,4,5};
但是在c++中
int *text=new int[5];
for(int i=0;i<5;i++)
{
text[i]=i+1;
}
可以
但是直接赋初值变不行了
然后赋初值访问即
public class text {
private int []text;
public int[] getText() {
return text;
}
public void setText() {
int []text= new int[5];
for(int i=0;i<5;i++)
{
text[i]=i+1;
}
this.text =text;
}
public void show()
{
for(int i=0;i<5;i++)
{
System.out.println(text[i]);
}
}
public static void main(String[] args) {
text brr=new text();
brr.setText();
brr.show();
}
}
这样的代码是可以打印出 1 2 3 4 5;同样c++也可以打印出1 2 3 4 5;
c++代码如下
#include <iostream>
using namespace std;
class text
{
public:
void init()
{
int *brr = new int[5];
for (int i = 0; i < 5; i++)
{
brr[i] = i + 1;
}
arr = brr;
}
void show() {
for (int i = 0; i < 5; i++)
{
cout << arr[i];
}
};
private:
int *arr;
};
int main()
{
text a;
a.init();
a.show();
return 0;
}
但是 如果直接赋初值便会报错
#include <iostream>
using namespace std;
class text
{
public:
void init()
{
int brr[5] = { 1,2,3,4,5 };
arr = brr;
}
void show() {
for (int i = 0; i < 5; i++)
{
cout << arr[i];
}
};
private:
int *arr;
};
int main()
{
text a;
a.init();
a.show();
return 0;
}
打印出-858993460-858993460-858993460-858993460-858993460请按任意键继续. . .
总结java 之中没有内存的说法 都是对象经过我的调试发现每个对象的后面都会有一个id 判断相等是通过id;
而在c++里面不是 是通过内存的地址 准确的来说是通过一个二进制;