在程序结构设计中使用结构体定义新的数据类型,如
typedef struct {
int type;
int value;
char arg[];
} CommandInfo;
在strcpy时将一个char的字符串拷贝到该结构体中char arg[]时,打印arg时为空。
遂将该结构体中char arg[]改为char arg,由于char只能在定义时初始化,不能在使用中给其赋值,如果赋值,程序就崩溃。
终止解决方案是将该结构体中char arg[]改为char arg[50].
所以这里就引入两个问题:
1)char[]与char
的区别
2)char[]与char[50]区别

1)char[]与char*的区别
char[]是字符数组(数组中的元素是字符)
char *是字符串 (sizeof只是求变量所占的字节数,sizeof(char ) = 4字节;strlen(char) 可以得到整个字符串的长度)
两者输出打印时均可以使用printf("%s", xx)
具体可参考:
https://blog.csdn.net/daiyutage/article/details/8604720
深入 char * ,char ** ,char a[ ] ,char *a[] 内核

2)char[]与char[50]区别
char[]跟char[0]一样,没有分配内存,所以只能用时在堆里面分配。
具体可参考:
https://blog.csdn.net/zachary_1989/article/details/14168303
结构体内数组大小不定

C语言中字符数组char[] 和 字符串char*的区别相关推荐

  1. C语言中字符数组的初始化与赋值,字符串相关函数

    C语言中字符数组的初始化与赋值,字符串相关函数! 1.字符数组初始化 在C语言中,字符串是当做字符数组来处理的:所以字符串有两种声明方式,一种是字符数组,一种是字符指针. (1)直接逐个初始化字符数组 ...

  2. C语言中字符数组的初始化与注意事项

    在C语言中字符数组的初始化有三种常见的方法: char a[5] = {'a','b','c','d','e'};char c[] = {'a','b','c','d','e'};char b[] = ...

  3. 关于C语言中字符数组和字符串的输出

    本文内容仅仅代表个人在学习中遇到的问题并作出的总结,如有错误的地方和别的想法可以联系一起学习讨论! 文章目录 前言 一.字符数组和字符串 二.过程分析 1.字符数组和字符串输出对比 2.字符数组和字符 ...

  4. C语言中字符数组和字符串指针分析

    写下面的测试程序: #include <stdio.h> int main(int argc, char *argv[]) { char day[15] = "abcdefghi ...

  5. C语言中字符数组初始化的几种方法

    欢迎关注我的微信公众号:CurryCoder的程序人生 1.C语言中的字符数组初始化 在C语言中,字符串是当做字符数组来处理的:所以字符串有两种声明方式,一种是字符数组,一种是字符指针. 1.1 直接 ...

  6. C语言中字符数组的初始化与赋值

    1.字符数组初始化 在C语言中,字符串是当做字符数组来处理的:所以字符串有两种声明方式,一种是字符数组,一种是字符指针. 字符数组初始化 char parr[] = "zifuchuansh ...

  7. java中字符型常量和字符串常量的区别

    1.形式上 字符常量 是单引号('')引起的一个字符,字符串常量 是双引号引起的若干个字符 2.含有上 字符常量相当于一个整形值(ASCll值),可以参与表达式的运算.字符串常量代表一个地址值(该字符 ...

  8. C语言的字符数组(字符串)的定义与初始化

    1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y ...

  9. Java中字符数组与字符串的转换方法

    1.字符串转字符数组 String myString = "hello123"; //创建一个字符串变量myStringchar[] myCharArray; //创建一个字符数组 ...

最新文章

  1. PAT, PMT in MPEG2 Stream :筆記
  2. python教程书籍推荐-推荐几本对于Python初学者比较好的书籍(内含PDF)
  3. 数据结构与算法笔记(十六)—— 二叉搜索树
  4. ionic3 动态设置tabs页面底部导航栏隐藏,并显示输入框添加评论
  5. 关于向MySQL插入一条新纪录的问题
  6. 阿里第二代微服务强势崛起,你还敢往简历上写“精通”吗?
  7. 58同城 php,58同城PHP面试试题
  8. Junit4集成到Maven工程
  9. 【flink】Flink 1.12.2 源码浅析 : yarn-per-job模式解析 yarn 提交过程解析
  10. Asp.Net请求原理and页面生命周期(转)
  11. str python3_python3.4.3如何转换str字符串?
  12. numpy无法导入的问题--ModuleNotFoundError: No module named 'numpy'总结
  13. 困兽之斗!使用JavaScript执行客户端的exe文件(excute the .exe file on client-side machine by JavaScript)...
  14. Boost Asio socket 非阻塞/缓冲区大小等属性设置
  15. STM32智能小车第二章 PWM调速
  16. Windows-QT安装后,又要安装mingw32/64怎么办?
  17. 京瓷300i_kyocera cs 300i kx驱动下载
  18. html5设置视频背景颜色,HTML5设置视频背景的方法介绍
  19. HDU2072(单词数)
  20. [JZOJ5498]【清华集训2017模拟12.10】大佬的难题

热门文章

  1. win7系统安装信息服务器不可用怎么办,win7系统rpc服务器不可用怎么办
  2. 计算机毕业设计JAVA汽车配件管理系统mybatis+源码+调试部署+系统+数据库+lw
  3. JavaWeb项目+MVC三层架构+Mysql+Tomcat+汽车配件销售系统前后端+可以用于学习javaweb项目入门
  4. 【OpenCV 4】图像卷积操作(Blur)
  5. IVR在voip电话系统的应用与价值
  6. 静态成员与非静态成员的区别
  7. QVW Load多个不同目录下的QVD文件
  8. 用C语言VC2010实现数字雨
  9. STM32H7 CANFD
  10. 运维同学,你们公司的运维团队有多少人?