强制转换为数组类型有什么要求吗?怎样才能将一个int类型的数组转换为char类型的数组? 怎么把一个int数组转化为char型数组??

\u600e\u6837\u628a\u4e00\u4e2aint\u7c7b\u578b\u7684\u6570\u7ec4\u7684\u67d0\u4e2a\u5143\u7d20\u8f6c\u6362\u6210char\u7c7b\u578b\uff1f

\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362\u3002

\u5047\u5b9aint\u548cchar\u6570\u7ec4\u5982\u4e0b\uff1a
int I[2]={1,2}
char c[2]={1,2}
\u4e24\u8005\u8f6c\u6362\u4ee3\u7801\uff1a
int a[2] = {1, 2};
char c[2];
for( int i = 0; i < 2; i++ ) c[i] = a[i];

Int\u662f\u5c06\u4e00\u4e2a\u6570\u503c\u5411\u4e0b\u53d6\u6574\u4e3a\u6700\u63a5\u8fd1\u7684\u6574\u6570\u7684\u51fd\u6570\uff0c\u4e3a\u53d6\u6574\u51fd\u6570\u3002
char\u662fC/C++\u6574\u578b\u6570\u636e\u4e2d\u6bd4\u8f83\u53e4\u602a\u7684\u4e00\u4e2a\uff0c\u5176\u5b83\u7684\u5982int/long/short\u7b49\u4e0d\u6307\u5b9asigned/unsigned\u65f6\u90fd\u9ed8\u8ba4\u662fsigned\uff0c\u4f46char\u5728\u6807\u51c6\u4e2d\u662funsigned\uff0c\u7f16\u8bd1\u5668\u53ef\u4ee5\u5b9e\u73b0\u4e3a\u5e26\u7b26\u53f7\u7684\uff0c\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u4e3a\u4e0d\u5e26\u7b26\u53f7\u7684\uff0c\u6709\u4e9b\u7f16\u8bd1\u5668\u5982pSOS\u7684\u7f16\u8bd1\u5668\uff0c\u8fd8\u53ef\u4ee5\u901a\u8fc7\u7f16\u8bd1\u5f00\u5173\u6765\u6307\u5b9a\u5b83\u662f\u6709\u7b26\u53f7\u6570\u8fd8\u662f\u65e0\u7b26\u53f7\u6570\u3002

可以转,但是会让你意外,因为你忘了int是4字节的,否则你也不会有这个问题。

int的数据宽度是4字节,char是单字节的,如果一个int超过255则一个char是无法记录的,会造成数据丢失,但是如果按字节一一对应转,可能会出现多余的0,而且数值意义也丢失,而编译器不确定你到底要怎么处理,因此无法做到隐式转换,只能报错。


于是最终还是要问你自己,是一个字节一个字节转换呢,还是按值转换成char,如果按值转换,那么大于255的值怎么处理?当然还有可能其他需求,因此,最终你得根据自己要求编写代码来实现定制转换。



你这个想法还真不能直接实现,必须你自己动手,定义一个新的字符数组,然后一个个的强制转换。

你衡量“可以转换”的标准是编译通过么?这显然是不严谨的,编译器有时候检查很弱
数组的元素在内存中是依次排放的,换成其他类型以后,内存中存放的对象又不会变化,你用其他类型的数组对象去访问,一定无法访问到正确对象
就如同一排箱子,每个箱子1米正方体,你用2.5米正方体的数组去找他,第二个2.5米正方体在第三个箱子的中间,这样定位到箱子中间的访问有意义么?

  • C++涓鏁扮粍鎸囬拡寮哄埗绫诲瀷杞崲,鐢眆loat鍒皍nsigned char
    绛旓細float鍨鐨勬暟鎹瘮unsigned char鍨嬪崰鐢ㄦ洿澶氬瓧鑺傦紝鎵浠ュ湪绌洪棿涓婂畠浠笉绛夐暱锛屼綘鐢ㄧ殑澶嶅埗鏂规硶鏄粯璁ゅ畠浠殑鏁扮粍鍗犵敤鐩稿悓瀛楄妭鏁颁负鍓嶆彁鐨勩傚彲浠ラ噸鏂拌缃畊nsigned char鏁扮粍鐨勫昂瀵革細t=(unsigned char *)new unsigned char[len*sizeof(float)/sizeof(unsigned char)];...
  • 鍏充簬c璇█鐨勬寚閽寮哄埗绫诲瀷杞崲鐨勯棶棰,濡傚浘,瀹氫箟浜4涓猚har鍨嬫暟缁,鍏朵腑涓...
    绛旓細涓轰簡瀛樺彇鏁版嵁鑺辫垂涓嶅繀瑕佺殑鏇村鐨勭殑鏃堕棿鐨勬儏鍐靛嚭鐜帮紝绯荤粺灏辩姝㈣繖鏍峰瓨鏀16浣嶆垨鑰32浣嶆暟鎹傝繖鏍16涓烘垨鑰32浣嶆暟鎹殑鍦板潃灏辨绘槸鍋舵暟銆備簬鏄綋鎶婁竴涓鏁颁綔涓轰竴涓16浣嶆暟鐨勮捣濮嬪湴鍧灏变細鏈夎繖鏍风殑閿欒銆傝嚦浜庤閬垮厤锛屽彲鑳芥槸涓嶈兘閬垮厤杩欑鎯呭喌浣嗗彲浠ラ伩鍏嶅嚭閿欍傝繖鏍峰氨闇瑕佸湪杞崲涔嬪墠鍋氫竴涓鏌ワ紝濡傛灉瑕杞寲鐨勬槸涓鏁...
  • C++濡備綍灏鏁扮粍寮哄埗绫诲瀷杞崲?
    绛旓細浣犲ソ锛侊紒浣 a 鏁扮粍鍐呴兘鏄瓨鐨勫澶х殑鏁板瓧锛熸瘮濡傦紝浣燼[1] 閲岄潰瀛樼殑鏄 123 锛屼綘閲囩敤瀛楃杈撳嚭鐨勬椂鍊欎篃鏄緭鍑猴細123 鍚
  • java涓殑寮哄埗绫诲瀷杞崲
    绛旓細Father father = new Father();Son son = (Son) father;杩欎釜绯荤粺浼氭姏鍑篊lassCastException寮傚父淇℃伅銆傛墍浠ョ紪璇戝櫒鍦ㄧ紪璇戞椂鍙細妫鏌绫诲瀷涔嬮棿鏄惁瀛樺湪缁ф壙鍏崇郴锛屾湁鍒欓氳繃锛涜屽湪杩愯鏃跺氨浼氭鏌ュ畠鐨勭湡瀹炵被鍨嬶紝鏄垯閫氳繃锛屽惁鍒欐姏鍑篊lassCastException寮傚父銆傛墍浠ュ湪缁ф壙涓紝瀛愮被鍙互鑷姩杞瀷涓虹埗绫伙紝浣嗘槸鐖剁被寮哄埗杞崲...
  • C璇█涓浣曞皢double鍨鏁版嵁杞崲涓烘暟缁?
    绛旓細鎬濊矾鏄:鍏堝皢Double鍨嬬殑鏁板瓧鏁存暟閮ㄥ垎鍙樹负鏁村瀷鏁板瓧涓涓鍙栧埌鏁扮粍涓幓锛堢敤寰幆鏁撮櫎鍙互鍋氬埌锛屾瘮濡俤ouble i=123.456锛屽氨鍙互鍏堟妸鏁存暟閮ㄥ垎鐢╦=锛坕nt锛塱寮哄埗绫诲瀷杞崲鍙栧嚭鏀惧叆鏁村瀷鍙橀噺j涓紝鍐嶄緷娆″彇鍒版暟缁刟涓 锛坅[k++]=i%10;i/=10锛)杩欎袱鍙ヨ鍙ュ氨鍙互鍋氬埌(涓嶈繃鏁板瓧鏄掑簭鐨勶紝鏈鍚庤緭鍑烘椂瑕佹敞鎰忥級銆傚啀鐪嬪皬鏁...
  • 濡備綍寮哄埗杞崲涓浜岀淮鏁扮粍鎸囬拡??
    绛旓細鎸囬拡绫诲瀷鏄涓嶈兘杩涜寮哄埗杞崲鐨勶紝灏ゅ叾鏄缁鏁扮粍鐨勬寚閽堬紝鍙兘閲嶆柊瀹氫箟銆傚洜涓哄畾涔夊墠灏卞繀椤昏鏄庢暟缁勪腑鈥濅竴涓厓绱犵殑闀垮害鈥滐紝杩欐槸鐢辩紪璇戝櫒鍐冲畾鐨勶紝濡傛灉涓嶈繖涔堝啓鏃犳硶鐢ㄨ嚜甯︾殑渚垮疁绋嬪簭灏嗕綘鐨勪唬鐮佽繘琛岀紪璇
  • C璇█ 鏁扮粍鍏冪礌 寮哄埗绫诲瀷杞崲
    绛旓細/ 1.10 2.20 3.30 4.40 5.50 Press any key to continue / include <stdio.h>int main(void) {double amounts[5] = {1.1, 2.2, 3.3, 4.4, 5.5};long dollars[5];long i,cents[5];for(i = 0;i < 5;i++)dollars[i] = amounts[i]; // 鍒╃敤绯荤粺鍔熻兘杩涜鑷姩杞崲...
  • c璇█涓彲浠ョ敤寮哄埗绫诲瀷杞崲
    绛旓細寮哄埗绫诲瀷杞崲鏄妸鍙橀噺浠庝竴绉嶇被鍨嬭浆鎹负鍙︿竴绉嶆暟鎹被鍨嬨備緥濡傦紝濡傛灉鎮ㄦ兂瀛樺偍涓涓 long 绫诲瀷鐨勫煎埌涓涓畝鍗曠殑鏁村瀷涓紝鎮ㄩ渶瑕佹妸 long 绫诲瀷寮哄埗杞崲涓 int 绫诲瀷銆傛偍鍙互浣跨敤寮哄埗绫诲瀷杞崲杩愮畻绗︽潵鎶婂兼樉寮忓湴浠庝竴绉嶇被鍨嬭浆鎹负鍙︿竴绉嶇被鍨嬨
  • 姹傝В杩欓亾棰,涓浠涔涓嶈兘鎶奜bject绫绘暟缁勫己鍒惰浆鎹㈡垚String绫荤殑鏁扮粍?
    绛旓細Object 鐨勫彉閲忥紝鍒涘缓鏄疭tring绫诲瀷锛屾墠鍙互寮哄埗杞崲锛屽惁鍒欏氨鏄姤寮傚父
  • labview寮哄埗绫诲瀷杞崲鎬庝箞鐢
    绛旓細璇ヨ蒋浠惰浆鎹㈡柟娉曞涓嬶細1銆佸湪鍑芥暟闈㈡澘涓夋嫨鈥绫诲瀷杞崲鈥濓紝鐒跺悗閫夋嫨鎮ㄩ渶瑕佽浆鎹㈢殑绫诲瀷锛屾瘮濡傚瓧绗︿覆鏁扮粍杞崲涓鏁存暟鏁扮粍銆2銆佸皢闇瑕佽浆鎹㈢殑鏁版嵁杩炴帴鍒扳滅被鍨嬭浆鎹⑩濆瓙闈㈡澘鐨勮緭鍏ョ銆3銆佸湪鈥滅被鍨嬭浆鎹⑩濆瓙闈㈡澘涓夋嫨鎮ㄩ渶瑕杞崲鎴鐨勬暟鎹被鍨嬶紝鐒跺悗灏嗚浆鎹㈠悗鐨勬暟鎹繛鎺ュ埌杈撳嚭绔4銆佸皢鈥滅被鍨嬭浆鎹⑩濆瓙闈㈡澘杩炴帴鍒伴渶瑕...
  • 扩展阅读:1.3721e+10转换成号码 ... 强制转换数据类型方法 ... 强制类型转换运算规则 ... 如何进行强制类型转换 ... 强制类型转换c语言 ... 强制类型转换表达式 ... 数字汉字混合提取数字 ... 强制类型转换格式 ... 强制类型转换是彻底转换吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网