|
#include <reg52.h>
#include <intrins.h>
int temp1=0;
int temp1=0;
void main()
{ char *str1="数";
temp1=strlen(str1); //把字符串str1的长度赋值给temp1
char *str2="深";
temp2=strlen(str2); //把字符串str2的长度赋值给temp2
}
以上代码在keil 4中编译没问题,然后我按ctrl+F5仿真调试发现temp1=1,temp2=2 。然而我把上面的代码稍修改后(如下所示代码)复制到VC 6.0里去编译,发现temp1=temp2=2 ,
修改后的代码:
#include<iostream>
#include<string>
using namespace std;
int temp1=0;
int temp1=0;
void main()
{ char *str1="数";
temp1=strlen(str1); //把字符串str1的字符长度赋值给temp1
char *str2="深";
temp2=strlen(str2); //把字符串str2的字符长度赋值给temp2
printf("%d\n",temp1);
printf("%d\n",temp2);
}
这样的结果让我很感到意外:在keil中为什么会出现中文字符有不同的字符长度呢?,好诡异哟~
我想不透,请求高人指点 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|