c++ int, int[], float,特别是char *, char[], char与C相同吗?我相信它们是基本的



有一些数据类型包含数据(我认为在内存中)。所以我想知道这些类型,

char,char *, char[], -- especially
int, int[], int *, float, decimal, short, long, if there are any other please mention

在C和c++中是相同的。

如果它们是相同的,那么我可以使用内存函数和字符串函数和int,浮点数,十进制,二进制等函数在C中可用,如memset,memcpy,memcmp,etc.和字符串函数,如strcmp, strstr, strlen, etc.在cpp文件和完整的c++库或混合c++文件,这是cpp或cc扩展,需要用g++或c++编译器编译?

我可以分配套接字缓冲区或复制到相同类型的c++类成员,如C char[]到char some_classobj->charsocket_datal[1024]或c++有自己的版本的这些函数?在这种情况下头文件是什么:头文件我只喜欢在这个问题中问。

是c++的int, int[], float,特别是char *, char[], char与C

相同

是的。

我可以使用内存函数和字符串函数以及C中可用的int, float, decimal,binary等函数,如memset,memcpy,memcmp等。字符串函数如strcmp, strstr, strlen等。在cpp文件和完整的c++库

这些C标准库函数包含在c++标准库中。通过添加前缀c和删除后缀.h来稍微改变头名称,例如:<string.h>-><cstring>和函数在命名空间std中。请注意,在许多情况下,对于其中一些函数,c++标准库中有更好的替代方案,因此我建议彻底学习c++。

旧的C标准头名称也存在,但不推荐使用。函数也可以在全局命名空间中声明,但在使用c++头文件时不能保证这一点。

可以分配套接字缓冲区或将其复制到c++类成员的相同类型,如c char[]

数组在c++中是不可赋值的,就像在C中不可赋值一样。你可以为类本身赋值,就像在C中可以为结构体赋值一样。

下面是c++中复制数组的一个好方法:

extern int from[42];
extern int to[42];
void example()
{
std::ranges::copy(from, to);
}

最新更新