C/C++字符串相等
来源:互联网 发布:大数据与医疗 编辑:程序博客网 时间:2024/06/04 19:02
#include <stdio.h>int main() { char str[20] = "a"; printf("%d\n", "a"=="a"); printf("%d\n", str=="a"); printf("%d\n", strcmp(str, "a")); return 0;}
使用GNU GCC编译上面的代码,运行,输出
1
0
0
这说明,GNU GCC在处理字符串常量时是有优化的,相当于使用了常量池(同Java,C++等),对相同的字符串常量不再进行第二次分配,因此他们具有相同的地址。但在有些编译器下却没有这样的优化。可能这是一个未定义的行为,因此还是避免使用吧。要更深刻地认识这个问题就需要研究C语言编译器的原理以及运行时内存分配模型了。
还有一点是strcmp在字符串相等时是返回0而不是1...
- C/C++字符串相等
- C字符串相等
- c风格字符串是否相等比较
- Objective-C 关于NSString字符串相等
- C语言判断两个字符串是否相等
- C语言比较两字符串是否相等
- c语言 判断两个字符串是否相等
- 【语言-C++】查找两串字符中 最长相等字符串
- C语言strcasecmp()函数:判断字符串是否相等(忽略大小写)
- <c:if test />来判定两个字符串是否相等
- Objective-C中 ==、isEqual、isEqualToString判断字符串相等
- <c:if test />来判定两个字符串是否相等
- c语言比较两个字符串是否相等strcmp
- C#==>相等
- 核心标签<c:if>比较字符串相等以及可能会报的错equal symbol expected
- c\c++中比较两个字符串或string对象是否相等
- K尾相等数 C语言联系
- C语言判断括号个数是否相等
- Starling实录-2理解它
- 邮件发送的js和参数的传送
- 11级_Java_曹建波 04.06 Struts2 返回json数据的详细介
- hdu 1176
- Linux下查看已登录用户以及pkill强制活动用户退出命令
- C/C++字符串相等
- 11级_Java_曹建波 04.07 jQuery easyUI +struts2+hibernate+oracle 实现 admin用户的分页操作
- python的字典
- 程序开机自启动
- Android 如何使用GPU硬件加速
- 11级_Java_曹建波 04.07 jQuery easyUI tree +struts2+hibernate +mysql 实现 三级联动的案例
- input文本框在实践中遇到的对齐问题
- "min"宏的实参不足
- C# USB打印机 打印