字符数组和字符指针的区别与联系,字符指针和字符数组的转换
(转)字符指针变量和字符数组的区别-for freedom-博客花园
(转)字符指针变量和字符数组的区别(1)分配内存
定义字符指针变量和字符数组的语句如下:
char *pc,str[100];
那么系统将为字符数组str分配一个100字节的内存单元来存储100个字符。然而,系统只为指针变量pc分配四个存储单元来存储一个存储单元的地址。
(2)初始化赋值的含义
数组和字符指针变量有相同的初始化赋值形式,但含义不同。例如:
char str[ ]=我是学生!,s[200];
char *pc=你是学生!;
对于字符数组,字符串放在为数组分配的内存空间中,而对于字符指针变量,字符串首先存储在内存中,然后将存储字符串的内存起始地址发送给指针变量pc。
(3)分配方法
字符数组只能给它的元素逐个赋值,而字符串不能给字符数组名赋值。对于字符指针变量,字符串地址可以直接赋给字符指针变量。例如:
“我爱中国!”;//字符数组名str不能直接赋值,这种说法是错误的。
pc=我爱中国!;//指针变量pc可以直接赋一个字符串地址,语句正确。
(4)输入方式
您可以将字符串直接输入字符数组,但不能输入指针变量。但是指针变量指向字符串可以直接输出。
示例:cin字符串//正确
CIN//错误
coupc//正确
(5)价值的变化
程序执行过程中,字符数组名代表的起始地址不能改变,但指针变量的值可以改变。
例如str=str 5;//错误
PC=str 5;//正确
摘要字符数组s[100]指针变量pc
(1)分配内存,分配100个单元,分配4个单元。
(2)将赋值含义字符串放入数组存储空间,先将字符串存入内存。
将存储字符串的第一个地址发送到pc。
(3)分配方法只能将字符串地址逐个分配给pc。
(4)输入法:字符串可以直接输入到字符数组中。字符串不能直接输入指针变量。
(5)值的改变:字符数组的首地址不能改变,但指针变量的值可以改变。
从上面的区别可以看出,在某些情况下,用指针变量处理字符串比用数组更方便。
?1原文链接:a title= 3358 www.chang-hao.com/content.php? id=3 href= http://www . Chang-Hao . com/content . PHP?id=3 http://www.chang-hao.com/content.php? id=3/a