当前位置:  编程技术>c/c++/嵌入式

C语言中char*和char[]用法区别分析

    来源: 互联网  发布时间:2014-10-28

    本文导语:  本文实例分析了C语言中char* 和 char []的区别。分享给大家供大家参考之用。具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很大。以下是个人的一些看法,有不正确的地方望指正。 本质上来说,char *s...

本文实例分析了C语言中char* 和 char []的区别。分享给大家供大家参考之用。具体分析如下:

一般来说,很多人会觉得这两个定义效果一样,其实差别很大。以下是个人的一些看法,有不正确的地方望指正。

本质上来说,char *s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:

当char *s = "hello";后,不能使用s[0]='a';语句进行赋值。这是将提示内存不能为"written"。

当用char s[]="hello";后,完全可以使用s[0]='a';进行赋值,这是常规的数组操作。

若定义:

char s[] = "hello";
char *p = s;

也可以使用p[0] = 'a';因为这是p ==s,都是指向数组的指针。

下面看另外一种定义:

char *s = (char *)malloc(n(www.));//其中n为要开辟空间的大小

这句话其实相当于:

char s[n];

定义的也是一个指向数组的指针,便可进行数组的下标操作

例子

#include 

int main(int argc, char* argv[]) {
char* buf1 = "this is a test";
char buf2[] = "this is a test";
printf("size of buf1: %dn", sizeof(buf1));
printf("size of buf2: %dn", sizeof(buf2));
return 0;
}

结果是:

$ > ./main
size of buf1: 4
size of buf2: 15

相信本文所述对大家C语言程序设计的学习有一定的借鉴价值。


    
 
 

您可能感兴趣的文章:

  • 使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
  • 基于C语言char与unsigned char的区别介绍
  • C语言char数值的转换函数
  • C语言中的BYTE和char深入解析
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • 关于C语言中的一些用法,高手进
  • HTML 脚本语言介绍及<script>标签用法
  • C语言变量类型与输出控制用法实例教程
  • linux下进程间通信:共享内存原理及具体用法举例(基于c/c++语言)
  • c语言中static和extern的用法详细解析
  • C语言中qsort函数用法实例小结
  • C语言入门之指针用法教程
  • 浅析C语言中assert的用法
  • C语言中字符串常用函数strcat与strcpy的用法介绍
  • C语言循环结构与时间函数用法实例教程
  • C语言中system()函数的用法总结
  • 浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别
  • c语言中static的用法详细示例分析
  • C语言、C++中的union用法总结
  • 浅析C语言中sscanf 的用法
  • C语言中const,volatile,restrict的用法总结
  • 基于c语言中调试工具的用法汇总(不包含gdb)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Lex/YACC 高手请进,求分析C语言语法例子
  • C语言分析系统日志
  • 如何使用yacc分析c语言程序?
  • 文本语言分析工具 Verbiste
  • c/c++语言位域注意事项分析
  • C语言中自动隐式转换与类型强制转换实例分析
  • C语言new操作的安全性分析
  • 解析c语言中"函数调用中缺少哨兵"的情况分析
  • C语言创建链表错误之通过指针参数申请动态内存实例分析
  • C语言的递归思想实例分析
  • C语言二叉树的非递归遍历实例分析
  • 为什么要学习C语言 C语言优势分析
  • NOSQL iis7站长之家
  • 利用C语言实践OOP,以及new,delete的深入分析
  • C语言宏定义使用分析
  • 关于C语言函数strstr()的分析以及实现
  • c病毒程序原理分析(防范病毒 c语言小病毒示例)
  • 基于C语言指令的深入分析
  • 深入分析C语言中结构体指针的定义与引用详解
  • C语言指针的长度和类型深入分析
  • 2013年7月和2013年8月编程语言排行榜
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 苹果OS X和IOS下最新编程语言swift介绍
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • C语言中间语言 CIL
  • PHP编程语言介绍及安装测试方法
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.
  • c语言实现MD5算法完整代码示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3