o88888u 2015-10-05 13:12 采纳率: 100%
浏览 1426
已采纳

我是c初学者,关于字符串有个问题:赋值start的字符串再与start比较,关系表达式值为假?

 #include <stdio.h>
int main(void)
{
   char str[5]="start";
   if (str == "start") printf("hallelujah!");
     else printf("ooooops...");
     return 0;

}

程序还是相当简单明了的。。。就是把str赋为start,再去和start比较,按逻辑这关系表达式的值应当是1,然而输出却是:oooops...

求解,是我程序写错了还是怎样...QAQ

  • 写回答

8条回答 默认 最新

  • lm_whales 2015-10-05 16:06
    关注

    C,C++C原生字符串,str == "start" 这个表达式,只是比较两个指针是否相等
    == 不能用于数组比较,也不能用于数组表示的C,C++ 原生字符串比较
    因为此时 数组,字符串在表达式中都是指针
    == 在这里,只是比较字符串,或者数组,是否地址相同,
    而不是比较数组内容是否相同,
    也不是比较字符串是否相同

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)