PoEdu_23_数组与指针

来源:互联网 发布:紫金银交易软件 编辑:程序博客网 时间:2024/06/07 01:02

数组是将类型相同的数据集合到一起,数组名指向数组的首地址。访问数组元素不仅可以通过下标的方式,还可以用指针加上偏移量。我们就可以读取和改写里面的数据。
数组使用过的最广泛的地方是用来存储字符串。但当我们来使用数组存储字符串的时候,要注意字符串是以‘\0’来表示结尾的。

char str[10]="0123456789"printf(str);

这里定义了一个长度为10的字符数组。存放了10个字符,因为数组的空间不够,‘\0’无法存放,在使用printf进行打印的时候就会出现乱码。

因为数组和指针是类似的,所以上面的代码我们可以这样写

char *pstr="123456789"printf(pstr);

但是这两者之间也是有区别的,数组是存放在栈区的,可读可写。而此时指针指向的数据是存放在常量区的,只读。当我们想要将*pstr里面的内容改写时就会发生错误。如

*(pstr+1)='A';

这种错误属于运行时错误,编译的时候并不会报错。所以很难被发现,需要特别小心。

0 0
原创粉丝点击