你好,从你的问题判断,你大概是看到了一个程序片段,其中有一个char str[128],于是你不理解为什么。建议你从头到尾通读一遍程序,128代表字符数组的长度,从str[0]到str[127],之所以是128百科,而不是其他值关键在于这个程序片段定义了它之后想拿来做什么用。
就像我找到一个1升水的瓶子,我每次可以舀1升水,而如果我现在要把一条船里面的水全部舀出来,用这个1升水的瓶子估计够呛,我得找一个可以装10升水或者更多的大瓶子才行。
cha
这是C语言的范畴:
根本原因是字符串不是一个基本数据类型,其真实名称应该是“字符串数组”。
C语言是不能用 = 对数组进行赋值的。
定义数组时候初始化使用 = , 但这里不能理解成赋值,因为这是编译器在编译的时候进行处理的。
赋值预计在编译时候报错C2106(运算符的左操作数必须为左值)。
#in
文字的编码问题而已。传输的长度是128,你收到的是0-127 这128个字符是对着的。
65533 这个是GBK编码的问题,GBK为双字节编码,当字符串中有一个符号占用一个字节的话,用GBK编码后就会出现**一位是单字节,这时系统会自动补上一个字节,这个补上的字节值就是65533。
你把字符串打印一下就能看出来,字符串有一部分是乱码。某强人写的一段处理GBK字符的代码,试试看是不是字符串就正常了。
1楼正解,你在初始化时给数组a赋了3个值,所以其实a的类型应该是 char a[3],数组长度为3,。
Copyright © 2018-2023 Powered By 没啥网备案号:粤ICP备2022148984号-3
声明:没啥网所有内容出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如有侵权请联系本站删除。请谨慎参阅。本站不承担由此引起的法律责任。网站地图