Char数据型态 c语言中

Char数据型态



假定我们都非常熟悉在C程序中使用char数据型态来定义和储存字符跟字符串。但为了便于理解C如何处理宽字符,让我们先回顾一下可能在Win32程序中
出现的标准字符定义。

下面的语句定义并初始化了一个只包含一个字符的变量:

char c = 'A' ;
        


变量c需要1个字节来保存,并将用十六进制数0x41初始化,这是字母A的ASCII代码。

您可以像这样定义一个指向字符串的
指针:

char * p ;<br />        


因为Windows是一个32位操作系统,所以指针变量p需要用4个字节保存。您还可初始化一个指向字符串的指针:

char * p = "Hello!" ;<br />        


像前面一样,变量p也需要用4个字节保存。该字符串保存在静态内存中并占用7个字节-6个字节保存字符串,另1个字节保存终止符号0。


还可以像这样定义字符数组:

char a[10] ;<br />        



在这种情况下,编译器为该数组保留了10个字节的储存空间。表达式sizeof(a)将返回10。如果数组是整体变量(即在所有函数外定义),您可使用像
下面的语句来初始化一个字符数组:

char a[] = "Hello!" ;<br />        


如果您将该数组定义为一个函数的区域变量,则必须将它定义为一个static变量,如下:

static char a[] = "Hello!" ;<br />        


无论哪种情况,字符串都储存在静态程序内存中,并在末尾添加0,这样就需要7个字节的储存空间

posted on 2010-04-15 09:47  王六石  阅读(298)  评论(0编辑  收藏  举报

导航