C语言基础—字符指针变量和字符数组的区别 1.字符数组由若干素组成,每个素中放一个字符,而字符指针变量存放的是地址(字符串第一个字符的地址),绝不是将字符串放到字符指针变量中。 2.赋值方式:可以对字符指针变量赋值,但不能对数组名赋值,可以采用以下方式对字符指针变量赋值: char *a; a = “I love China”; 不能用以下方式对字符数组名赋值: char str[14] str[0] = ‘I’; str = “I love China” /*数组名是地址,是常量,不能赋值*/ char *a = “I love china!”; /*定义字符指针变量a,并把字符串第一个素的地址赋给a*/ /*对于数组的初始化*/ char str[14] = “I love China!”; /*定义字符数组,并把字符串赋给数组中各素*/ /*以上定义不等价于*/ char str[14]; str[] = “I love China!”/*企图把字符串赋给数组中个各素,错误*/ 注意:数组可以在定义的时候对各个素赋初值,但不能用赋值语句对数组中全部素整体赋值。 (3)存储单的内容。编译时为字符数组分配若干存储单,以存放各素的值,而对字符指针变量,只分配一个存储单。 如果定义了字符数组,但未对它赋值,这时数组中素的值是不可预料的。可以引用(如输出)这些值,结果显然是无意义的,但不会造成严重后果,容易发现和改正。 如果定义了字符指针变量,应当立即把第一个字符变量的(或字符数组素)的地址赋给它,使它指向一个字符型数据,如果未对他赋一个地址值,此时向该指针变量指向的地址输入一个数据,很可能会出现严重的后果。 (4)指针变量的值可以改变,而数组名代表一个固定的值(数组素的首地址),不能改变。 (5)字符数组中各素的值是可以改变的 (可以对他们再赋值),但字符指针变量指向的字符串常量中的内容是不可取代的(不能对它们再赋值)。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/41374.html