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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue-router路由懒加载_懒加载分页延时vue

    vue-router路由懒加载_懒加载分页延时vue安装:https://www.npmjs.com/package/babel-plugin-syntax-dynamic-import配置:路由文件:

    2022年10月6日
    0
  • 使用深度图重建世界坐标

    使用深度图重建世界坐标参考网址:https://blog.csdn.net/puppet_master/article/details/77489948首先建立一个绘制世界坐标的项目。保证物体的顶点在0到1范围之内,这样颜色能够有意义的表示物体的世界坐标位置。然后编写一个shader,用于绘制世界坐标位置:Shader&amp;amp;amp;amp;amp;amp;amp;quot;Unlit/DrawWorldPoint&amp;amp;amp;amp;amp;amp;amp;quo

    2022年5月8日
    44
  • linux export添加环境变量_查看环境变量linux

    linux export添加环境变量_查看环境变量linux环境变量定义:Itsanamedobjectthatcanbeusedbymultipleapplicationsasitcontainssomevaluableinformationrequiredbytheseapplications环境变量时一个具有特定名字的对象,包含了一个或多个应用程序要用到的信息.可通俗理解为,假如一个工厂里有一大堆的工具

    2022年9月3日
    2
  • 编码 ansi_ansi编码和utf-8

    编码 ansi_ansi编码和utf-81、ANSI编码不是一个具体的字符集,而是对一些多字节字符集类型的字符集的一个总体的称呼,总称。(Windows)ANSI编码中的每一个代码页值就是对一个具体的多字节字符集类型的字符集的别名。例如,代码页936就是Windows系统对简体中文GBK这个字符集的别名。如果ANSI编码是一个具体的字符集,由于汉字和韩文字符都是它能表示的字符,那么里面写有韩文字符的以(Windo

    2022年9月13日
    1
  • kill命令杀死所有进程_ubuntu杀死进程命令

    kill命令杀死所有进程_ubuntu杀死进程命令常规篇: 首先,用ps查看进程,方法如下:$ps-ef……smx      1822    1 011:38?       00:00:49gnome-terminalsmx      1823 1822 011:38?       00:00:00gnome-pty-helpersmx      1824 1822 011:38

    2022年9月21日
    0
  • mysql报错日志文件在哪_windows硬件报错日志

    mysql报错日志文件在哪_windows硬件报错日志1.cmd打开服务,找到mysql服务,查看属性中my.ini配置文件所在位置:2.打开my.ini配置文件,查看datadir配置:datadir=C:/ProgramData/MySQL/MySQLServer5.7/Data此目录存储了错误日志文件3.查看错误日志文件名SHOWVARIABLESLIKE”%error%”;…

    2022年10月13日
    0

发表回复

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

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