一个小问题....
例:char c[8];
int c[8];
这两种定义的一样吧
然后 int a[]="string";为什么错误呢?
----------------解决方案--------------------------------------------------------
不一样 前者是整形数组 后者是字符型数组
int a[]="string",就是语法错误,字符窜不能赋值给整型数组吧
----------------解决方案--------------------------------------------------------
[QUOTE]char c[8];
int c[8];
这两种定义的一样吧
然后 int a[]="string";为什么错误呢?[/QUOTE]
不一样,char c[8],是占用8个字节的字符数组,int c[8]是占用16或32个字节(由机器的自然字决定)的整数数组.
字符串只能直接存入字符数组并在其后自动添加'\0',整数数组可以存放这样存放字符.
int c[]={'h','a','p','p','y','n','e','w','y','e','a','r'};
----------------解决方案--------------------------------------------------------
为什么我在一本书看到:
C语言本身并没有设置一种类型来定义字符变量,字符串的存储完全依赖字符数组.用来存放字符数据的数组称为字符数组.字符数组中的每一个元素可存放一个字符.定义的方法和格式都与前面的数组相似.列如:
char [8];
因为字符型与整型是互相通用的,因此上面的定义可以改为:
int c[8];
----------------解决方案--------------------------------------------------------
因为字符可以用ASIIC码表示.而这个码是个整形数呀.
----------------解决方案--------------------------------------------------------