对一些数据类型的概念说明

char数据类型

     设计char数据类型的目的是为了容纳字符型值,字符的本质是小整型值。char的最小范围是0~127,对于char、int等基本数据类型的具体长度可查看头文件limits.h。对于缺省的char值,要么是signed char:-127~127,要么是unsigned char:0~255,这取决于编译器。当程序所使用的char型变量的值位于signed char和unsigned char的交集时,程序具有可移植性。ASCII字符集中的字符都是位于这个范围的。

字面值(literal)

     字面值是字面值常量的缩写,这是一种实体,指定了自身的值并且不允许发生改变。在ANSI C中允许命名常量,声明为const变量,与普通变量很类似,只是在创建const变量时,就要初始化该变量,并且之后就不允许再发生改变。

	const int Data = 1;	//声明常量
	int const Data = 1;	//声明常量
	//这两种的声明是等效的,选取适合自己的一种即可

const常量在创建时获取值的方法:

    1)定义时初始化。

    2)在函数中声明const形参,当函数被调用时会得到实参的值。

	int Fun1( char const *pstr )	//方式2
	{
		int Len = strlen(pstr);

		return Len;
	}

	void Fun2(void)
	{
		int const Data = 1;	//方式1
		int len = Fun1("string");
	}

字符串

    字符串的概念:是一串以NUL字节结尾的零个或多个字符。即使是空字符串依然存在作为终止符的NUL字节,在c语言中并没有字符串类型,不过c语言提供字符串常量,同时字符串以字符数组的形式存在。

      字符串常量中的字符和NUL终止字节都存储在内存的某个位置,在ANSI C中不允许修改字符串常量。若要修改字符串,则应该将它存储于字符数组中。

      当一个字符串常量出现在一个表达式中时,表达式所使用的值就是这些字符串存储的地址,而不是这些字符本身。因此,可以把字符串常量赋值给“指向字符的指针”。

	char str[] = "string";
	//字符数组的形式存储字符串,str是“string”字符串的一个拷贝
	
	char *pstr = "string";
	//字符串常量存储的位置
	str[1] = 'T';	//ok,字符数组可以修改
	*(pstr+1) = 'T';	//error,字符串常量不可修改


posted @ 2014-05-20 14:45  小怪兽&奥特曼  阅读(156)  评论(0编辑  收藏  举报