char name[10] = "100";//改成="A";怎么就可以?
int value = *(int*)name;
printf("value=%d\n",value);
printf("value=%d\n",value);//为啥错误?
答案:4 悬赏:60 手机版
解决时间 2021-02-01 12:41
- 提问者网友:动次大次蹦擦擦
- 2021-02-01 04:10
最佳答案
- 五星知识达人网友:过活
- 2021-02-01 05:42
没错啊,你说的是哪里错啦?
char name[10] = "100";//改成="A";怎么就可以?
int value = *name;
printf("value=%c\n",value);
这样输出的是1
char name[10] = "100";//改成="A";怎么就可以?
int value = *name;
printf("value=%c\n",value);
这样输出的是1
全部回答
- 1楼网友:十鸦
- 2021-02-01 09:48
编译没有错误。如果你说结果错的话,那是显然的,因为你定义的是char数组,所以应该是name[0] = '1' = 49=00110001,name[1] = '0' = 00110000,name[2] = '0' = 48=00110000.你进行了强制类型转换,改成int型的指针,则把三个数据当成一个数据,00110001001100000011000000000000.当然会出错。
- 2楼网友:往事埋风中
- 2021-02-01 08:51
"100"在计算机内存中以00110001 00110000 00110000 00000000二进制存储,其中00110001对应字符'1',00110000对应字符'0',00000000对应字符'\0',而二进制00000000 00110000 00110000 00110001(此二进制是字符串"100"对应的内存形式倒过来)对应的十进制就是:3158065。因此程序输出:
value=3158065
- 3楼网友:野慌
- 2021-02-01 07:19
printf(“max value is %d!\n,” result);
就是在屏幕上显示“max value is *!”后面再加上当时这个result里面的值,比如说这时result被赋值为3,那么屏幕上就显示max value is 3!引号里的是屏幕上显示的,%d表示会显示的数值类型为十进制整数,\n就相当于换行回车一样,下面再显示的东西不会紧接着这一行,而是另起一行。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯