#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
",temp1);
printf("%d
",temp2);
}
这样的结果让我很感到意外:在keil中为什么会出现中文字符有不同的字符长度呢?,好诡异哟~
我想不透,请求高人指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我实在是很感谢你们~
一周热门 更多>