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)
上一篇 2022年8月4日 下午3:16
下一篇 2022年8月4日 下午3:36


相关推荐

  • js合并数组与合并对象的区别_js将对象转为数组

    js合并数组与合并对象的区别_js将对象转为数组一、数组合并1、for循环会改变原数组,如果不想改变原数组需要生成一个新数组leta=[1,2,3];letb=[4,5];//1for循环for(variinb){a.push(b[i]);}console.log(a);//[1,2,3,4,5]2、concat()concat()方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

    2025年7月23日
    3
  • Maven系列(一):安装、配置Settings.xml配置文件与使用

    Maven系列(一):安装、配置Settings.xml配置文件与使用安装与使用今天博主将为大家分享一下 Maven 的下载与安装 不喜勿喷 如有异议欢迎讨论 以下所写内容均与以前的文章有联系可以前往博文查看 陈永佳的博客 Maven 前言首先 Maven 是基于项目对象模型 POMprojectob 可以通过一小段描述信息 配置 来管理项目的构建 报告和文档的软件项目管理工具 百度百科 这种又是大白话 如果没明白 maven 是什么

    2026年3月18日
    2
  • vue.js中created()与activated()的个人使用理解

    vue.js中created()与activated()的个人使用理解created():在创建vue对象时,当html渲染之前就触发;但是注意,全局vue.js不强制刷新或者重启时只创建一次,也就是说,created()只会触发一次;activated():在vue对象存活的情况下,进入当前存在activated()函数的页面时,一进入页面就触发;可用于初始化页面数据等…

    2025年7月23日
    5
  • 常用和不常用端口一览表收藏

    常用和不常用端口一览表收藏

    2021年6月8日
    105
  • 新手福音:在快马平台用中文描述轻松入门ai编程,替代claude code

    新手福音:在快马平台用中文描述轻松入门ai编程,替代claude code

    2026年3月13日
    2
  • C++ 数独解法

    C++ 数独解法问题描述 数独 Sudoku 是一款大众喜爱的数字逻辑游戏 玩家需要根据 9X9 盘面上的已知数字 推算出所有剩余空格的数字 并且满足每一行 每一列 每一个粗线宫内的数字均含 1 9 并且不重复 输入 包含已知数字的 9X9 盘面数组 空缺位以数字 0 表示 输出 完整的 9X9 盘面数组原题链接 include iostream include map include amp map iostream

    2026年3月19日
    3

发表回复

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

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