gpt4 book ai didi

c++ - 环礁和(long int)之间的区别?

转载 作者:行者123 更新时间:2023-11-27 23:51:37 24 4
gpt4 key购买 nike

如果这是一个糟糕的问题,请原谅。很可能是这样。但我的印象是 (long int)[some string] 应该将字符串转换为 long int。事实并非如此,因为我只是编写了一个示例程序。

#include <iostream>
#include <cstdlib>

using namespace std;

int main(int argc, char **argv)
{
int firstNum = atoll(argv[1]);
int secondNum = atoll(argv[2]);

int sum = firstNum + secondNum;

long int firstArg = (long int)argv[1];
long int secondArg = (long int)argv[2];

long int argSum = firstArg + secondArg;

cout << "The argSum is: " << argSum << ", which is same as sum: " << sum << endl;

}

我之所以有这种印象,是因为我正在阅读下面给出的代码。解释会帮助我建立一些知识。谢谢。

srv.request.a = atoll(argv[1]);
srv.request.b = atoll(argv[2]);
if (client.call(srv))
{
ROS_INFO("Sum: %ld", (long int)srv.response.sum);
}

最佳答案

atoll 是一个函数,它解析字符串以生成它表示为 long long 的数值(然后将其填充到 int).

转换,即(long int)arg[0] 正在做的事情,告诉编译器将一个值解释为另一种类型。在您的情况下,您要解释的是指向字符的指针,而不是它指向其开头的字符串表示的值。

关于c++ - 环礁和(long int)之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45943150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com