深入理解char , char * ,char ** ,char a[ ] ,char *a[] 的区别

本文详细介绍了C语言中几种常见的字符类型及其用法:char变量只能存储单个字符,char数组可用于存储字符串,char指针常用于指向字符串常量,而char *[]则可以用来存储多个字符串的地址。通过实例展示了它们的内存分配和使用方式,帮助读者理解这些概念的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深入理解char ,char * ,char ** ,char a[ ] ,char *a[] 的区别

  • char a; 字符变量
    定义了一个字符变量a,只能放一个字符,长度是1。 a = “p”;
  • char a[10]; 字符数组
    定义了一个字符数组,长度为10,可以存放长度为10的字符串 a[10] = {"hello "};
    a =&a[0]; 数组名就是数组首个元素的地址,数组又是连续的,所以打印字符串,只需printf(数组名)
  • char * a 字符指针
    a = “hello world” 因为在C中,字符串常量就是个指针,所以实际上是把字符串常量的首地址给了指针变量a          这和字符数组有类似之处。
  • *char s 4个字节,32位,放指针变量 char a[10] sizeof(a) 是10
  • char * a[] *

由于[ ] 的优先级高于* 所以a先和 [ ]结合,他还是一个数组,数组中的元素才是char * ,保存一个地址。
char a[ ] = {“hellow”,“world”,“my”,“friend”}; 44 =16个字节

char **s;

   char **为二级指针, s保存一级指针 char *的地址,关于二级指针就在这里不详细讨论了 ,简单的说一下二级指针的易错点。  

   举例:

   char *a [ ] = {"China","French","America","G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值