浅谈char *str与char str[]的区别
来源:互联网 发布:猿粪网络语 编辑:程序博客网 时间:2024/06/06 11:01
前段时间,在做一个工程,里面写到一个传值函数,把char str[]传给参数char *str,然后利用strncmp比较某两个字符串大小进行相关操作,结果strncmp我是用sizeof来指定比较的字符串的字节数的,结果strncmp竟然一直没法正确判断,顿时我很吃惊,不知道哪里有问题,后来将sizeof(str)的值打出来看了一下,竟然不是字符串的字符个数,而是比起小很多地一个值。
于是将char *str和char str[]都赋成了“123456789”,结果,后面一个是正常的10个字节,前一个却只为4,后来仔细想了想,char *str的字节确实不应该为10,因为它是指向“123456789“这个字符串的指针,并不是这个字符串的本身,所以虽然它能表示该值,字节数却不是该值的字节数,于是果断把strncmp比较里的sizeof(str)改成strlen(str),因为在32为平台上,char是占一个字节的,所以strlen()的值就是该字符串的字节数。
另外要注意指针需有内存地址空间了才能被使用,光声明一下如char *str是不能被使用的。
0 0
- 浅谈char *str与char str[]的区别
- char str[]与char *str的区别
- char str[]与char *str的区别
- char str[]与char *str的区别
- char str[]与char *str的区别
- char str[]与char *str的区别
- char str[]与char *str的区别
- char *str 与char str[] 的区别
- C++中char* str与char str[]的区别
- char str[] 与 char *str的区别详细解析
- 关于char *str[]与 char str[]的区别
- char str[] 与 char *str的区别详细解析
- char *str和char str[]的区别
- char str[] 和 char *str 的区别
- char str[] 和 char *str 的区别
- char str[] 和 char *str 的区别
- char str[] 和 char *str 的区别
- char str[] 和 char *str 的区别
- jni中字符转换中文乱码的处理方法 Java String转换成const char*(转摘)
- 使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
- 安装内核头文件
- 山东理工大学ACM平台题答案关于C语言 1194 C语言实验——余弦
- Leetcode: Median of Two Sorted Arrays
- 浅谈char *str与char str[]的区别
- centos+jdk+tomcat+jdbc
- 蜗牛—cocos2dx之HelloWorld
- Nginx部署部分https与部分http
- vs2010中的Quick Search
- Leetcode Maximum Subarray
- hud 1532 Drainage Ditches + 网络流入门题
- java虚拟机读写其它进程的数据及RandomAccessFile
- Selenium2.0功能测试之唯一元素的定位