C语言 Char* 和Char 用法[通俗易懂]

C语言 Char* 和Char 用法[通俗易懂]分类专栏:C语言版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/imxlw00/ar

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:
https://blog.csdn.net/imxlw00/article/details/92105004

  • char []定义的是一个字符数组,注意强调是数组。
  • char * 定义的是一个字符串指针,注意强调是指针。

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

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

当用char s[]=“hello”;后,完全可以使用s[0]=‘a’;进行赋值,这是常规的数组操作。
若定义:

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

 

 

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

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

相当于

1 char s[n];

 

1 #include <stdio.h>
2 int main(int argc, char* argv[]) {
3     char* buf1 = "abcd1234";
4     char buf2[] = "abcd1234";
5     printf("size of buf1: %d\n", sizeof(buf1));
6     printf("size of buf2: %d\n", sizeof(buf2));
7     printf("长度为:%d  %d\n", strlen(buf1), strlen(buf2));
8 return 0;

 

size of buf1: 4 
size of buf2: 9
长度为:8 8

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167887.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 七、分发脚本xsync报错

    七、分发脚本xsync报错一、报错问题Badownerorpermissionson/home/pcz/.ssh/configBadownerorpermissionson/home/pcz/.ssh/configrsync:connectionunexpectedlyclosed(0bytesreceivedsofar)[sender]rsyncerror:unexplainederror(code255)atio.c(226)[sender=3.1.2]Badow

    2022年5月5日
    47
  • VirtualBox安装Debian6的方法和步骤(详细)

    VirtualBox安装Debian6的方法和步骤(详细)下面是用VirtualBox安装Debian6的方法和步骤l新建一个文件夹,用于存放虚拟硬盘,如Debianl打开VirtualBox,点击新建l输入虚拟机名称,Debian_6l给虚拟机分配

    2022年7月2日
    28
  • visitor设计模式ppt_常用的设计模式

    visitor设计模式ppt_常用的设计模式动机Visitor是访问者的意思。数据结构中保存着元素。一般我们需要对元素进行处理,那么处理元素的代码放在哪里呢?最显然的方法就是放在数据结构的类中,在类中添加处理的方法。但是如果有很多处理,就比较麻烦了,每当增加一种处理,我们就不得不去修改表示数据结构的类。visitor模式就是用来解决这个问题的,visitor模式将数据结构的定义和处理分离开。也就是会新增一个访问者的类,将数据元素的处理交给访问者类,这样以后要新增处理的时候,只需要新增访问者就可以了。模式定义将更新(变更)封装到一个类中(访问

    2022年8月8日
    5
  • Win10 桌面美化

    Win10 桌面美化Win10桌面美化最近发现了几款Win10界面美化的软件,看了看别人家的Win10操作界面,瞬间觉得自己的low了,关键是赏心悦目啊!废话不多说,先看看我原来桌面和美化后的桌面对比图原始桌面美化桌面1.安装RocketDockRocketDock可以提供类似macos的操作系统图标特效,打开安装包进行安装,完毕后启动得到效果如下:可以发现切换效果与mac类似,他默认的主题是C…

    2022年4月25日
    53
  • android 4怎么打开usb调试?「建议收藏」

    android 4怎么打开usb调试?「建议收藏」手机连接电脑,刷机,等都需要打开手机USB调试模式,你才能进行操作的。所以买了手机建议都要打开这个USB调试,手机锁屏密码忘记也需要打开这个。这个比较重要。工具/原料手机安卓android系统方法/步骤打开自己的手机找到《设置》点击,进入以下图例。在点击《关于手机》

    2025年11月4日
    3
  • Windows内核之进程的终止和子进程

    Windows内核之进程的终止和子进程

    2021年12月4日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号