一.字符指针
二.指针数组
数组内各个元素都是指针类型,用于存放内存的地址.
举例:遍历多个数组元素
*(s[i]+j)=s[i][j]
1.输出red 和 green
2.输出red的第一个字母‘r’
3.输出第4个单词“green”的第3个字符’e'
例题一:查找星期
#include <stdio.h>
#include <string.h>
#define MAXS 80
int getindex( char *s );
int main()
{
int n;
char s[MAXS];
scanf("%s", s);
n = getindex(s);
if ( n==-1 ) printf("wrong input!\n");
else printf("%d\n", n);
return 0;
}
int getindex( char *s )
{
char *a[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
for(int i=0;i<7;i++){
if(strcmp(a[i],s)==0){
return i;
}
}
return -1;
}
例二:输出月份英文名
#include <stdio.h>
#include <string.h>
char *getmonth( int n );
int main()
{
int n;
char *s;
scanf("%d", &n);
s = getmonth(n);
if ( s==NULL ) printf("wrong input!\n");
else printf("%s\n", s);
return 0;
}
char *getmonth( int n )
{
char*a[]={"January","February","March","April","May","June","July","Augest","September","October","November","December"};
if(n>=0&&n<=12)
return a[n-1];
else
return NULL;
}
三:数组指针
eg:整型指针:指向整型的指针
字符指针:指向字符的指针
数组指针:指向数组的指针
可以理解为arr[3]里每个元素为int[5]
辨析: