jpa oracle 传参int类型判空_c++中typeid里的PKc是什么意思?它是个什么类型?

今天写了一段c++代码,功能是通过命令行传参计算2个参数的和,

在进行参数类型转换的时候,报下以错误:

2030bae08b830e39acc8ef6d196dd1cf.png

025.cpp:9:14: error: cast from pointer to smaller type 'int' loses information

sum += (int)argv[i]

刚开始我没想去查在c++中进行字符类型转换的方法,而是想判断一下argv[1]是什么类型。

于是加了下面一行代码:

    for (int i=1; i<3; ++i){      //cout << argv[i]<

输出的结果是:PKc

typeid(argv)的结果是PPKc

注:要想使用typeid,必须加上#include

这是什么东西?于是开始百度,但没搜到,在知乎上看到这样的解释:

名字是编译器规定的。具体到这个上面你可以记成pointer(P) const(K) char(c)

原来main函数传递的argv的类型是 const char *, 是一个字符指针常量.

对了,知科那哥们说是编译器规定,我是在mac下运行的程序,gcc的版本是4.2.1,还没在windows下测试过。

上面代码中对argv的类型转换也是错误的。

正确的程序如下:

#include #include using namespace std;  int main(int argc, const char *argv[]){  int sum = 0;    cout<2){    for (int i=1; i<3; ++i){        int item = stoi(argv[i]);        sum += item;    }  }  //cout << argc <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值