一、指针易错点
int a[2][3];//基类型是int[3].
int (*p)[3];//指针行,优先级:() > [],故基类型是int[3]。
p = a;
指向字符型的数组指针,
详细分析:char (*p)[3]首先是一个指针,指向的是一个数组(数组可以是一维也可以是多维),数组有三个元素,为char型。
二、字符串输入
代码如下(示例):
char *s; scanf("%s", s); puts(s);
这种方法多数情况下不会输入正确字符串,因为没有分配空间,且指针s指向未知。
代码如下(示例):
char *s; s="ABCDE"; puts(s);
这种方法相当于指针指向了字符串常量。
代码如下(示例):
char s[5]={'A', 'B', 'C', 'D', 'E'}; puts(s);
没有分配’\0’的内存空间,所以不能用puts输出。
代码如下(示例):
char s[5]={"ABCDE"}; puts(s);
该方法将空间改为6个即可。
也可以用另一种方法:
代码如下(示例):
char s[] = "ABCDE"; puts(s);
char s[6] = "ABCDE";puts(s);
扩展资料:
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E4%B8%B2