字符数组和字符指针的区别与联系,字符指针和字符数组的转换

  字符数组和字符指针的区别与联系,字符指针和字符数组的转换

  (转)字符指针变量和字符数组的区别-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

字符数组和字符指针的区别与联系,字符指针和字符数组的转换