小编Ale*_*roF的帖子

在Java中,为什么我们可以像使用String一样使用String类?

在Java中我们通常会这样做:

Class myObject = new Class();
Run Code Online (Sandbox Code Playgroud)

因为new关键字返回一个地址.

但为什么我们这样做呢?:

String myString = "Hello";
Run Code Online (Sandbox Code Playgroud)

仿佛String是一个原始人?

我向老师问了这个问题,他回答说这是因为引号中的内容相当于一个地址,但他不确定.你确定吗?

"Hello"是否存储在String类的实例变量中?

java string class

24
推荐指数
3
解决办法
1586
查看次数

当我们在 C 中声明一个静态向量时,是否存储了指向这个向量的指针?

我想知道是否

int v [10];
Run Code Online (Sandbox Code Playgroud)

还分配(除了 10*sizeof(int) 字节)一个指向该向量的整数的指针。

c pointers vector

1
推荐指数
1
解决办法
94
查看次数

如何让 C++ 函数返回不同类型?

看看这段代码:

#include<iostream>

enum class DataStructure{stack,queue};

template <typename T>
T foo(DataStructure ds){
  if(ds == DataStructure::stack){
    return 1;
  }
  else if(ds == DataStructure::queue){
    return 3.14F;
  }
}

int main(){
  std::cout<<foo(DataStructure::stack);
}
Run Code Online (Sandbox Code Playgroud)

显然它不编译,给error: no matching function for call to ‘foo(DataStructure)’
但是你明白我想做什么,有没有办法做到这一点?基本上foo必须返回不同的对象或基本类型,具体取决于enum.
我为基本问题道歉。

c++ templates

1
推荐指数
1
解决办法
94
查看次数

运算符 - >在malloc函数中

在这里观看:

struct mystruct{
 int a;
 int b;
};

int main(void){
 struct mystruct* ptr;
 ptr = malloc( 10*sizeof( struct mystruct ) );
Run Code Online (Sandbox Code Playgroud)

这样我就分配了一个struct数组.如果你试图打印,例如ptr [4],你会注意到一个指针.当我有一个指针并且我可以访问一个成员时,我必须使用 - >运算符吗?但如果我这样做:

ptr[4]->a
Run Code Online (Sandbox Code Playgroud)

它不起作用!我必须这样做

ptr[4].a 
Run Code Online (Sandbox Code Playgroud)

让它工作......为什么?我有一个指针!ptr [4] =(ptr + 4)对吗?

在正常数组中也会发生这种情况

struct mystruct array[10];
array[4].a
Run Code Online (Sandbox Code Playgroud)

但是数组是一个指针!

c malloc pointers

0
推荐指数
1
解决办法
98
查看次数

标签 统计

c ×2

pointers ×2

c++ ×1

class ×1

java ×1

malloc ×1

string ×1

templates ×1

vector ×1