字符串与char数组的指针表示

来源:互联网 发布:网络暴力案例2016 编辑:程序博客网 时间:2024/06/05 18:33
#include "stdio.h"void main(){char *p="Monday";/*p为指向字符串"Monday"的首地址指针*/printf("%s\n",p);/*该语句的结果应该是"Monday",即printf会一直输出字符直到"\0"结束符为止*/printf("%c\n",*p);/*该语句的结果应该是"M",因为p是字符串"Monday"的首地址,该地址指向的字符是"M"*/char q[]="Tuesday";/*C语言中没有字符串类型变量,因此只能用字符数组来表示,以"\0"表示字符串的结束*/printf("%s\n",q);char a='a';/*字符变量的赋值用单引号,字符串赋值用双引号*/printf("%c\n",a);char *b[]={"Wednesday","Thursday"};/*b是一个二维指针数组,b[0]为"Wednesday"字符串的首地址,b[1]为"Thursday"的首地址。需要注意的是,b和b[0]的值并不一样*/printf("%s\n%s\n",b[0],b[1]);/*指针数组变量名b为该数组的首地址,指向b[0],但并不等于b[0]*/printf("%s\n",*b);/*这个应该输出"Wednesday",*b等效于b[0]*/char s[3][4]={'1','2','3','4','5','6','7','8','9','10','11','12'};char (*c)[4];/*类似于"char *b[]",不过用来指向二维数组的某一行*/c=s;printf("%c\n",*((*c+2)+3));/*指向第2行第3列的字符*/getchar();}