字符串比较 c语言
2015-07-11 22:59
465 查看
[code]/* 1. str1 和str2是两个数组,分配3个字符空间,并把"abc"的内容复制到数组中去, 这是两个初始地址不同的数组,所以str1和str2的值是不同的 2. str3和str4是两个指针,不需要为它们分配内存来存储字符的内容, 只需要将它们指向"abc"中的内存中的地址就可以了, 由于"abc"是常量字符串,在内存中是一个拷贝, 所以str3和str4的值是相同的. */ #include<stdio.h> int main(void){ char str1[] = "abc"; char str2[] = "abc"; char *str3 = "abc"; char *str4 = "abc"; if(str1 == str2){ printf("\n str1 and str2 are same \n"); }else{ printf("\n str1 and str2 are not same \n"); } if(str3 == str4){ printf("\n str3 and str4 are same \n"); }else{ printf("\n str3 and str4 are not same \n"); } return 0; }
输出结果是:
[code]str1 and str2 are not same str3 and str4 are same
原因:
1.str1 和str2是两个数组,分配3个字符空间,并把”abc”的内容复制到数组中去,
这是两个初始地址不同的数组,所以str1和str2的值是不同的
str3和str4是两个指针,不需要为它们分配内存来存储字符的内容,
只需要将它们指向”abc”中的内存中的地址就可以了,
由于”abc”是常量字符串,在内存中是一个拷贝,
所以str3和str4的值是相同的.
相关文章推荐
- C语言实现IP地址字符串转化成数值地址(双字)
- c风格字符串与c++string的比较
- 一元线性回归模型与最小二乘法及其C++实现
- C++中不能被重载的运算符介绍
- C++中不能被重载的运算符介绍
- Effective C++ 之 Item 6 : 若不想使用编译器自动生成的函数,就该明确拒绝
- vc++视频教程 软件工程师培训课程 VC知识库大讲堂
- 给定一个字符串,按单词将该字符串逆序。
- hdoj5281二分减少时间复杂度
- C语言学习笔记——指针
- [leetcode-88]Merge Sorted Array(C语言)
- C语言—判断IP地址是否合法
- 【学习笔记】【OC语言】创建对象
- C++中Exit()与atexit()函数的使用
- [leetcode-28]implement strstr()(C语言)
- hdoj5280最大区间和
- 【学习笔记】【OC语言】面向对象思想
- C语言及程序设计 实践项目――C语言程序初体验
- C语言及程序设计 例程 - C语言程序初体验
- leetcode 日经贴,Cpp code -Lowest Common Ancestor of a Binary Search Tree