本文实例分析了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.jb51.net));//其中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: %d\n", sizeof(buf1));

printf("size of buf2: %d\n", sizeof(buf2));

return 0;

}

结果是:

$ > ./main

size of buf1: 4

size of buf2: 15

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

c语言char有什么作用,C语言中char*和char[]用法区别分析相关推荐

  1. c语言put语句的作用,C语言中put()与puts()的区别?

    C语言中put()与puts()的区别? 关注:275  答案:2  mip版 解决时间 2021-02-04 15:47 提问者笑低了眉眼 2021-02-04 12:42 C语言中put()与pu ...

  2. c语言time函数的作用,c语言中time函数的用法

    c语言中time函数的用法 c语言中time函数的用法的用法你知道吗?下面应届毕业生小编就跟你们详细介绍下c语言中time函数的用法的用法,希望对你们有用. c语言中time函数的用法的用法如下: 头 ...

  3. c语言pow函数的作用,c语言中pow函数的用法是什么?_后端开发

    在c言语中pow()函数是用来求x的y次幂.x.y及函数值都是double型 ,其语法为"double pow(double x, double y)":个中参数"dou ...

  4. c语言eof不起作用,c语言中EOF的用法

    c语言中EOF的用法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言中EOF的用法 1.EOF是end of fi ...

  5. sizeof 在C语言的作用,C语言中的sizeof的用法详解

    C语言中的sizeof的用法详解 一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.它并不是函数.sizeof操作符以字节形式给出了其操作数的存储大小.操 ...

  6. scanf在c语言中的作用,c语言中scanf的基本用法

    前言 scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio.h头文件中,它的基本使用很简单: 1 int a; 2 scanf("%d",&a); ...

  7. c语言sinx的作用,C语言中 sinx cosx 的用法

    #include #include int main() { double pi=acos(-1.0); double angle; scanf("%lf",&angle) ...

  8. c语言中rand()的作用,c语言中的rand()函数用法

    rand() rand()函数作用:用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()函数返回:返回一个范围在 ...

  9. 在c语言中for的作用,c语言中for语句的用法

    C语言语言中FOR的用法 for 是一个循环语句,和while是类似的,for一般的用法有: for(i=0;i<10;i++) { printf("hello world" ...

  10. c语言中%s的作用,C语言中%c与%s的区别与划分详解

    %c格式对应的是单个字符,%s格式对应的是字符串. 例: char a; char b[20]; scanf("%c",&a); //只能输入一个字符. scanf(&qu ...

最新文章

  1. NASA将天文数据转换为音频,来听听银河系的声音!
  2. 计算机实现减法学习心得
  3. Solution 1: BST转双向链表
  4. sizeof之字节对齐
  5. java8 lambda python_java8里面lambda的stream()用法讲解
  6. SRS流媒体服务器——单机环境搭建和源码目录介绍
  7. Linux备份策略(第二版)
  8. error: Please reinstall the libcurl distribution - easy.h should be in curl-dir/include/curl/
  9. 【推荐实践】RALM:实时Look-alike算法在微信看一看中的应用(附PPT下载链接)...
  10. ANSI X9.8标准 PIN xor PAN获取PIN BlOCK
  11. 一图理解ceil和floor的区别
  12. python调用win32api详解_Python调用Win32 API实现截图
  13. Webtrends的跨域访客跟踪机制
  14. c语言数字的写法田字格,《国家规定的汉字笔顺规则》及田字格里写数字1~10的标准格式...
  15. java转盘抽奖算法_抽奖算法 - 幸运大转盘 - java
  16. Linux 误删除文件恢复
  17. 问题:必须使用记录或另一备份以恢复包含系统注册表
  18. APISpace 行驶证OCR API
  19. 博客小编风明姗姗来迟
  20. 如何取消PPT的密码保护?

热门文章

  1. Selenium - IWebDriver 控制scroll bar到底部
  2. 开源路由软件zebra的命令存储原理及使用方法
  3. Ubuntu11.04 3945ABG无线网卡驱动安装
  4. IE图标消失 HTML文件图标变为未知图标的解决方法
  5. 软件工程 工具之二—— PowerDesigner v12(六)
  6. layui多级联动下拉框的实现_简单三级联动的实现
  7. 基于nchan打造百万用户的聊天室
  8. JavaScript 严格模式(use strict)
  9. android 标题栏颜色渐变和阴影,ScrollView上下滑动监听,及判断scrollView是否滚动到底部
  10. beforeRouteEnter,beforeRouteLeave函数