热度 25
2012-6-18 22:02
1729 次阅读|
1 个评论
作者:征途中的人(转载,请注明作者,请尊重原创) 一、一位数组的初始化 1、在定义数组时对数组元素赋予初值 int a ={1,2,3}; 2、只给部分元素赋值 Int a ={1,2}; 3、在对数组全部元素赋初值,由于数组个数已经确定,因此可以不指定数组长度 int a ={1,2,3}; 或 int a ={0,0,0}; 或 Int a ={0}; 二、字符数组的一般初始化 1、最容易理解的方式是在定义时候,逐个字符赋给数组中的各个元素,进行初始化 Char c ={‘a’,’b’,’c’}; 2、如果对在定义字符数组不初始化,则数组中各个元素的值是不可预料的。 字符个数大于数组长度则按语法错误处理。 Char c ={‘a’,’b’,’c’}; 字符个数小于数组长度则其余元素自动定为空字符。Char c ={‘a’,’b’,’c’}; 如下图: C C C C a b c \0 3、如果字符个数与数组长度相同,在定义时可以省去数组长度,系统会自动根据数组字符个数确定数组长度。 Char c ={‘a’,’b’,’c’}; //长度为3 三、对字符串常量的一些认识 编译系统对字符串常量会自动加个’\0’作为结束标志。 用过以下语句输出一个字符串。 Printf(“how do you do?\n”); 在执行此语句时系统怎么知道应该输出哪里为止呢? 实际上,在内存中存放时,系统自动在最后一个字符’\n’的后面加个’\0’作为字符串结束标志。在执行printf函数时,每输出一个字符检查一次,看一个字符是否’\0’,遇到’\0’就停止输出。 四、用字符串常量使字符数组初始化 1、在定义字符数组的时候用字符串进行初始化 Char c ={“abc”} 需要说明的是:字符数组并不要求它的最后一个字符为’\0’,甚至可以不包含’\0’,像一下的写法是合法的 Char c ={“abc”}; 或 Char c ={‘a’,’b’,’c’}; 是否要加’\0’,完全根据需要决定,但是由于系统对字符串常量自动加’\0’,因此为了使处理方法一致,便于测定字符串的实际长度,以及在程序中作为相应的处理。在字符处理上也会人为的加上一个’\0’.例如: Char c ={‘a’,’b’,’c’,’\0’}; 这样便于引用字符数组中的字符串。 char c ={“hello”}; 和char c ={“hello”};有什么区别呢 在字符串存储中最后都会自动加个一个结束符’\0’.所以存储5个字符需要6个空间。 所以char c ={“hello”};缺少结束符,但是调用c ,c ,c ,c ,c ,是可以使用的,但是使用strlen(c),strcpy()等函数就会出现错误,因为找不到结束标志。 char c ={“hello”};可以正常使用,因为有结束标志’\0’,c =’\0’; 2、可以部分赋值 Char c ={“abc”}; 前三个元素为a,b,c,第四个元素为’\0’,后两个元素为空字符 a b c \0 \0 \0 3、可以省略数组长度 Char c =”abc” //数组长度为4 等价于 Char c ={‘a’,’b’,’c’}; 【上海索漫科技】提供