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

#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();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值