草庐IT

c++ - 什么更有意义 - char* string 或 char *string?

这个问题在这里已经有了答案:Whyistheasteriskbeforethevariablename,ratherthanafterthetype?(12个回答)关闭12个月前。我目前正在学习C++,并且遇到了很多以null结尾的字符串。这让我开始思考,声明指针时更有意义的是:char*string或char*string?对我来说,char*格式更有意义,因为“字符串”的类型是指向char的指针,而不是char。但是,我通常看到后一种格式。这显然也适用于引用。谁能告诉我后一种格式是否有合理的原因? 最佳答案 在以下声明中:cha

c++ - int、char、float、bool,哪个最小?

以下内容来自“在家填写”编程测试,该测试是英国大学游戏开发理学硕士申请流程的一部分:C++BasicsIfaprogramdeclaredfourvariables,oneoftypeint,oneoftypefloat,oneoftypechar,andoneoftypebool,whichvariablewouldoccupytheleastspaceinmemory?intcharfloatbool根据说明,只有一个真实的陈述。但是,我的C++书(C++PocketReference,O'Reilly)指出:“bool的典型大小是一个字节”和“char的大小是一个字节。字节的大小

android - 将 java 中的 byte[] 转换为 C++ 中的 unsigned char* 的正确方法,反之亦然?

我是C++和JNI的新手,我尝试找到一种正确的方法,使用JNI将java中的byte[]转换为C++中的unsignedchar*,反之亦然!(我正在研究安卓)在google和SO中寻找解决方案后,我还没有找到将java中的byte[]转换为C++的好方法。请帮助我,并为反之提供解决方案(C++中的unsignedchar*到java中的byte[])。非常感谢java中的byte[]到C++中的unsignedchar*:JAVA:privatestaticnativevoidnativeReceiveDataFromServer(byte[]value,intlength);JNI

c++ - 在调用 toupper()、tolower() 等之前,我是否需要转换为 unsigned char?

不久前,在StackOverflow上享有盛誉的人在评论中写道,在调用之前有必要将char参数转换为unsignedchar>std::toupper和std::tolower(以及类似的函数)。另一方面,BjarneStroustrup在C++编程语言中没有提到这样做的必要性。他只是使用toupper之类的stringname="NielsStroustrup";voidm3(){strings=name.substr(6,10);//s="Stroustrup"name.replace(0,5,"nicholas");//namebecomes"nicholasStroustrup

c++ - 如何将 vector<unsigned char> 转换为 char*

我有一个这样的缓冲区:vectorbuf如何将其转换为char*?如果我这样做:(char*)buf我收到此错误:/home/richard/Desktop/richard/client/src/main.cc:102:error:invalidcastfromtype‘std::vector>’totype‘char*’对于那些想知道我为什么要这样做的人。我需要将缓冲区传递给这个函数:n_sent=sendto(sk,(char*)buf,(int)size,0,(structsockaddr*)&server,sizeof(server));而且它只接受char*。

c++ - 无法将参数 1 从 'char' 转换为 'LPCWSTR'

我不断收到此错误:无法将参数1从'char'转换为'LPCWSTR'intmain(intargc,charargv[]){//openportforI/OHANDLEh=CreateFile(argv[1],GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);if(h==INVALID_HANDLE_VALUE){PrintError("E012_Failedtoopenport");有人可以帮忙吗? 最佳答案 转到项目的属性并在配置属性/常规下,将字符集更改为“未设置”

c++ - 从 (char*, size_t) 创建 C++ 内存流的更简单方法,无需复制数据?

我找不到任何现成的,所以我想出了:classmembuf:publicbasic_streambuf{public:membuf(char*p,size_tn){setg(p,p,p+n);setp(p,p+n);}}用法:char*mybuffer;size_tlength;//...allocate"mybuffer",putdataintoit,set"length"membufmb(mybuffer,length);istreamreader(&mb);//use"reader"我知道stringstream,但它似乎无法处理给定长度的二进制数据。我是在发明自己的轮子吗?编辑它

C++11 引入了采用 `const char*` 的异常构造函数。但为什么?

Standardlibrarydefect#254其中包括添加新的异常构造函数:std::logic_error::logic_error(constchar*what_arg);std::runtime_error::runtime_error(constchar*what_arg);//etc.给出了这样一种想法,即存储std::string会打开一些与潜在的内存分配问题有关的蠕虫。但是,followinginitiationofadiscussionbyorlpintheLounge,令我震惊的是,除非标准要求what_arg只是一个字符串文字(或指向其他静态存储持续时间缓冲区的

c++ - 警告 : ISO C++ forbids converting a string constant to ‘char*’ for a static `constexpr char*` data member

这个问题在这里已经有了答案:constexprconstvsconstexprvariables?(3个回答)关闭3年前。为什么这段代码会返回警告warning:ISOC++forbidsconvertingastringconstantto‘char*’[-Wwrite-strings]如果Aconstexprspecifierusedinanobjectdeclarationornon-staticmemberfunction(untilC++14)impliesconst.Aconstexprspecifierusedinafunctionorstaticmembervariab

c++ - 为什么 c++ 中 char 和 bool 的大小相同?

我正在阅读C++编程语言。Stroustrup在其中指出sizeof(char)==1和1.具体取决于实现。为什么像boolean值这样简单的值会占用与字符相同的空间? 最佳答案 在现代计算机体系结构中,字节是最小的可寻址内存单元。要将多个位打包到一个字节中,需要应用额外的位移操作。在编译器级别,这是内存与速度要求之间的权衡(在高性能软件中,那些额外的位移操作会不必要地增加和减慢应用程序的速度)。 关于c++-为什么c++中char和bool的大小相同?,我们在StackOverflow