永发信息网

c++ 一个字符数组 初始化字符串后

答案:2  悬赏:80  手机版
解决时间 2021-04-05 01:18
  • 提问者网友:世勋超人
  • 2021-04-04 02:33
char a[7] = {'1','2','3','a','b','c',0};

std::Cout<<"123abc"[3]<<"\n";
输出结果:b
”123abc“就是一个地址 这里输出的就是b 为什么不是b的ascll码值呢62呢?我将数组类型换为int 类型都还是输出b 这是为何呢(求大侠详解)
int b[7] = {'3','2','1','a','b','c',0};
std::cout<<"321abc"[4]<<"\n";
输出结果:b

还有这里涉及到地址 指针是否在这里参与了某种运算呢?
上面的 char a数组该怎样称呼呢 称呼为字符串数组,还是?
最佳答案
  • 五星知识达人网友:逃夭
  • 2021-02-12 12:14
std::cout << "321abc"[4] << "\n";这样访问相当于数组的,4即是里面的字符串的下标4,即字符b,而不是你说的int类型,要为int类型可以这样std::cout << (int *)"321abce"[4] << "\n"; 结果为62,没有你想的那么复杂
全部回答
  • 1楼网友:轻熟杀无赦
  • 2020-07-16 20:35

呃。。。楼上的回答。。好像不在点上

如果字符串是指string类,那可以用下面语句执行

char temp[]="hello ";

string str = string(temp);

如果我答不到点上那请补充下问题咯

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯