草庐IT

months3char

全部标签

c++ - 如何从 const char* 转换为 unsigned int c++

我是C++编程的新手,我一直在尝试从constchar*转换为unsignedint,但没有成功。我有一个:constchar*charVar;我需要将其转换为:unsignedintuintVar;如何在C++中完成?谢谢 最佳答案 #include#includeconstchar*value="1234567";stringstreamstrValue;strValue>intValue;cout输出:12345671234567 关于c++-如何从constchar*转换为uns

c++ - C+ +'s Strict Aliasing Rule - Is the ' char' 别名豁免一条 2 路街道?

就在几周前,我了解到C++标准有一个严格的别名规则。基本上,我问了一个关于移位的问题——而不是一次移位一个字节,为了最大限度地提高性能,我想用(分别为32或64位)加载处理器的native寄存器并执行4/8的移位字节全部在一条指令中。这是我想避免的代码:unsignedcharbuffer[]={0xab,0xcd,0xef,0x46};for(inti=0;i>4);}buffer[3]相反,我想使用类似的东西:unsignedcharbuffer[]={0xab,0xcd,0xef,0x46};unsignedint*p=(unsignedint*)buffer;//unsigne

c++ - 为什么 C 不允许从 char ** 到 const char *const * 的隐式转换(而 C++ 允许)?

我知道从char**到constchar**的隐式转换无法完成以及为什么,以及到char*const*有效。请参阅底部的解释链接。除了一件特定的事情之外,这一切都是有意义的。所以我有以下代码:#includevoidprint(constchar*const*param){printf("%s\n",param[0]);}intmain(intargc,char**argv){print(argv);return0;}如果我将它编译为C++代码,它编译得非常好。但是,如果相同的代码仅编译为C代码,我会收到一个错误(好吧,一个警告,但我们假设-Werror,即将警告视为错误)。gcc:t

c++ - 为什么 char 指针变量可以初始化为字符串,而 int 指针变量不能初始化为整数数组?

这个问题在这里已经有了答案:Howcanacharpointerbeinitializedwithastring(Arrayofcharacters)butanintpointernotwithanarrayofinteger?[duplicate](4个回答)关闭5年前。我试图理解字符串、数组和指针之间的关系。我正在阅读的这本书有一个程序,它在其中初始化一个变量,如下所示:char*szString="Name";我理解这一点的方式是,C风格的字符串只是一个字符数组。数组只是引用指针(存储数组的第一个值)和偏移量的简写版本。IE。array[5]实际上返回从表达式*(array+5)

c++ - 从函数返回 char*

以下是3个功能。main()按预期打印出来。现在,我猜在mycharstack()中,字符串存储在堆栈中,因此当“ch”超出范围时,它应该无法返回字符串。它是如何正常工作的?我猜存储在mychar()中的字符串也在堆栈上。它应该正常工作吗?我猜代码中还有其他错误和内存泄漏,如果有请告诉我。我可以用std::string做这些更清洁和更容易的事情。但我想了解char*是怎么回事。#includeusingnamespacestd;char*mychar(){return"Hello";}char*mycharstack(){char*ch="HelloStack";returnch;}c

c++ - 将 lptstr 转换为 char*

有人知道如何在C++中将类型LPTSTR转换为char*吗? 最佳答案 取决于它是否显示为Unicode。如果不是Unicode,LPTSTR是char*,如果是,则为w_char*。Discussedbetterhere(接受的答案值得一读) 关于c++-将lptstr转换为char*,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/342772/

c++ - std::string 和 std::vector<char> 有什么区别?

那么主要区别是什么?在哪些情况下会用到它们? 最佳答案 vector向您保证&v[0]+n==&v[n]而字符串没有(实际上是这样,但不能保证)......AFAIKC++0x已经提供了这种保证constchar*没有隐式转换至vectorstring不是STL容器。例如,它没有pop_back()或back()功能最后但同样重要的是,不同的成员函数!String为您提供适合字符串的函数,例如用c_str()返回一个以null结尾的字符串底线:使用string当您需要使用字符串进行操作时。使用vector当你需要一个......好吧

c++ - const char* 与 char* (C++)

对于以下程序:intDivZero(int,int,int);intmain(){try{cout使用char*e会给出terminatecalledafterthrowinganinstanceof'charconst*'根据C++ExceptionHandling,解决方案是改用constchar*。进一步阅读function(constchar*)vs.function(char*)说过Thetypeof"String"ischar*',notconstchar*'(thisisaCdiscussionIthink...)关于堆栈溢出的补充阅读char*vsconstchar*a

c++ - CHAR_BIT 的更好名称?

我只是checkingananswer并意识到CHAR_BIT没有像我期望的那样由标题定义,甚至没有#include,在较新的GCC上。我真的需要#include只是为了获得CHAR_BIT的“功能”? 最佳答案 您可能知道,实现是否要包含其他header是未指定的。这是允许的,但不是强制性的。(§17.4.4.1)所以你要么必须明确,要么知道你的保证。C++头文件必须包含另一个头文件的唯一情况是它需要在另一个头文件中定义。例如,需要包含对于std::size_t,因为这在标准中明确说明。(对于这个例子,第23.3.5节)作为反例,

c++ - 在头文件中将值设置为 "const char *"是否合适

我见过人们使用2种方法来声明和定义char*。方法一:头文件如下externconstchar*COUNTRY_NAME_USA="USA";方法二:头文件有以下声明:externconstchar*COUNTRY_NAME_USA;cpp文件的定义如下:externconstchar*COUNTRY_NAME_USA="USA";方法1在某些方面是错误的吗?两者有什么区别?我了解"constchar*constvar"和"constchar*var"之间的区别。如果在上述方法中,如果像方法1一样在header中声明和定义“constchar*constvar”,是否有意义?