通常的回答是,==比较的不是字符串的内容,它是在比较指针。或者说,==(或者!=)仅比较两个字符串的首地址,而不会比较字符串每个字符。

那其实接下来应该问的问题是,为什么会只比较首地址呢?

因为早期的C语言只能使用标量。

简单的说,标量scalar就是指char, int, double, enum等数值类型,以及指针。像数组、结构体、共同体这样将多个标量组合起来的类型,被称为聚合类型aggregate。

字符串其实就是char类型的数组,也就是说它不是标量,因此在C中不能用==比较。

在ANSI C中,追加了几个功能:

. 结构体的一次性赋值

. 将结构体作为函数参数值进行传递

. 将结构体作为函数返回值返回

. auto变量的初始化

只涉及结构体;字符串还是不能用==比较的。

最新文章

  1. MySQL升级
  2. 关于dll
  3. 比较详细Python正则表达式操作指南(re使用)
  4. [windows][C++][库]遍历删除文件夹
  5. 英文缩写&名词
  6. PowerBuilder反编译
  7. 经典非原创,网页常用Javascript
  8. Spring+MyBatis实践—登录和权限控制
  9. javascript this关键字
  10. ssh整合时报出的异常及解决办法
  11. JavaScript学习日志(六):事件
  12. python netifaces模块
  13. 关于web XSS注入问题
  14. InfiniDB 修改一行的效率?
  15. eclipse常用快捷键(windows下)
  16. redis 安装-配置
  17. Blocks [POJ3734] [矩阵快速幂]
  18. 算法与数据结构(四) 图的物理存储结构与深搜、广搜(Swift版)
  19. hibernate 调用存储过程返回参数
  20. Eclipse搭建C++\C开发环境

热门文章

  1. express 路由能力
  2. Java中的Set集合以及HashSet
  3. cmake README.TXT
  4. go结构体上的函数
  5. 密码学之RSA基础
  6. 使用PHP和MySQL添加数据库时的小错误及注意事项总结
  7. 关于ios 的耳机线线控
  8. ArcGIS version not specified.
  9. SQL Server2012 安装方法详解
  10. Git 学习第三天(二)