帮忙看看这两行代码错哪了~

来源:百度知道 编辑:UC知道 时间:2024/09/21 01:53:19
#include <stdio.h>
int main(void)
{
long long number[] = '哇哈哈哈哈哈哈哈'
printf ("\n占用的byte是 %lld.", sizeof (number[]));
return 0;
}
就这个,编译后,编译器说:错误 d.c 4: 字符型常量太长在 main 函数中
错误 d.c 4: 不能执行所要求的类型转换在 main 函数中
错误 d.c 5: 说明语法错误在 main 函数中
错误 d.c 5: 说明语法错误在 main 函数中

我把那个long long 改成long再把“哇哈哈哈哈哈哈哈”改成“哈”,于是编译器说:错误 d.c 4: 不能执行所要求的类型转换在 main 函数中
错误 d.c 5: 说明语法错误在 main 函数中
错误 d.c 5: 说明语法错误在 main 函数中

我想看看一串中文字符占多少bytes~~~~~~~

#include <stdio.h>
int main(void)
{
char number[] = "哇哈哈哈哈哈哈哈"; //此处数组类型为char。单引号改双引号,后面加分号。
printf ("\n占用的byte是 %lld.", sizeof (number));//此处去掉中括号
return 0;
}

/*我已经运行了这修改后的程序,答案是17,即number占17个字节,每个汉字在VC++6.0
中是2个字节,8个汉字有16字节,后面系统自动加了一个 /0 占一个字节,所以共17个*/

用char number[]= "哇哈哈哈哈哈哈哈";//双引号,分号
结果应该是(中文字符数*2+1),那个1是字符串结尾符'\0'

VC环境下,一个中文字符占两 个字节。