C语言中的字符数组与字符指针应用研究+源代码(3)
时间:2021-09-29 20:16 来源:毕业论文 作者:毕业论文 点击:次
o g r a m 。 \0
表2 这时编译器就会自动计算出字符串的长度。值得注意的是,字符串常量只能在定义字符数组时赋值给字符数组,不能将1个字符串常量直接赋值给字符数 。还有如果字符数组中有多个“\0”,当遇到第一个“\0”时就会停止输出。但是字符数组并不要求它的最后一个字符为“\0”,甚至可以不包含“\0”。像上面的第一个例子,是否需要“\0”完全是根据需要决定的。 若要输出多个字符串,可以通过使用scanf函数来实现,例如 #include<stdio。h> int main() {char str1[5]=“I”str2[ 5]=”love”,str3[ 13]=”China”,; Scanf(“%s%s%s”,str1,str2,str3); return 0; } 该程序的存储状况如下表所示: I \0 \0 \0 \0 \0 l o v e \0 \0 C h i n a \0 表3 值得注意的是,scanf函数中输入项如果是字符数组名,不要在添加地址符“&”,因为C语言中数组名就代表数组的起始地址。 3 字符指针 3。1 基本概念 我们知道变量在计算机中是占用一块存储区域的,变量的值就是存放在这块区域之中的,不同类型的数据所占用的内存单元数不一样,如int占用4个字节,char占用1个字节。为了访问或修改这块区域的内容来访问或修改相应的变量,必须为每个内存单元编上号,每个内存单元的编号是唯一的,根据编号可以准确的找到该内存单元。内存单元的地址与内存单元是有区别的。在程序中一般是通过变量名来对内存单元进行存取操作的。其实程序经过编译以后已经将变量名转换为变量的地址,对变量值的存取都是通过地址进行的。这种按变量地址存取变量值的方式称为直接存取方式,或直接访问方式。还可以采用另一种称为间接存取(间接访问)的方式。可以在程序中定义这样一种特殊的变量,它是专门用来存放地址的。 指针实际上是指变量的地址。指针的值是指指针本身存储的数值,这个值将被编译器当做是一个地址,而不是一个一般的数值。例如,地址1000就是变量i的指针。如果有一个变量专门用来存放另一个变量的地址(即指针),则它称为“指针变量”。指针变量是地址变量,用来存放地址,指针变量的值是地址(即指针)。若定义了一个变量p,它用来保存另一个变量var的地址,这样的p就是指向var的指针变量。 字符指针即指向字符的指针所占内存单元是所指字符的内存单元,定义方法是char *str。C 语言中许多字符串的操作都是由指向字符数组的指针及指针的运算来实现的。因为字符串一般来说是严格按顺序存取的,使用指针可以打破这种存取方式,使字符串处理更加灵活。文献综述 3。2 用字符指针处理字符串 C语言中,可以通过字符数组存放一个字符串,也可以用指针指向一个字符串。 (责任编辑:qin) |