指向字符串的指针(超详解)

1)什么是字符串
用双引号括起来的零个或多个字符"abcd"
2)字符串的结束符号:
\0,它是一个字符,而不是一个字符串
3)字符串的输出;
printf("%s",数组名)
puts()
输入:
scanf
gets
4)strlen:用来测量一个字符串中所包含的字符个数
5)如果一个指针p指向了一个字符串,那我们就说p就是一个指向字符串指针
定义格式:char *指针名 ,如char *p
赋值:char *p = “abcd” or char *p; p = “abcd”;
可以把一个字符串直接赋给一个指针,但这并不说明把字符串中的所有字符都赋给了p,
实际上p永远只能指向一个字符,指针p刚开始指向的是字符串的第一个字符
char a[10] = { “1234” }, *p = a;
a---->1<—p
2
3
4
\0
6)指向字符串指针的输出
1:puts(指针名)
2:printf("%s",指针名)
输出原理:以当前指针的位置开始,一直向下输出,直到遇到\0为止
*/

/*#include<stdio.h>
#include<string.h>
void main()
{
	char a[100] = { "abcd123" }, *p = a+4;
	printf("%s\n", p);//123
	printf("%d", strlen(p));//3
}*/
/*
将一个指向字符串的指针移动到一个数组的末尾
p = a + strlen(数组名) - 1;
*/
/*#include<stdio.h>
#include<string.h>
void main()
{
	char a[100] = { "abcd123" }, *p = a;
	p = a + strlen(a) - 1;
	printf("%s\n", p);
	printf("%d", strlen(p));
}*/
/*
*p代表的是字符串中的某一个字符,所以输出参数应该是%c
只有输出字符串才用%s
如printf("%s", p);printf("%c",*p)
*/
/*#include<stdio.h>
#include<string.h>
void main()
{
	char a[100] = { "abcd123" }, *p = a;
	while (*p)
	{
		*p = *p + 1;
		p++;
	}
	puts(a);//bcde234
}*/
/*#include<stdio.h>
#include<string.h>
void main()
{
	char s[] = { "\n123\\" };
	printf("%d\n", strlen(s));//5
	printf("%d", sizeof(s));//6,其是用来返回一个数组的大小包含\0
}*/

/*
1)一维字符型数组就是字符串
2)以数组作为函数的参数,型参数组就是实参数组,实参数组也就是型参数组,
因为数组名是首地址,实参把数组的地址传给了实参数组
3)如果把一个数组的首地址赋给了某个指针,则这个指针就可以当数组使用
4)以字符串作为函数参数的几种格式
A:型参和实参都用数组
型参:fun(char a[])
实参:fun(a)
B:型参用数组,实参用指针
型参:fun(char a[])
实参:fun§p是指针
C:型参用指针,实参都用数组
型参:fun(char *p)
实参:fun(a)
D:型参和实参都用指针
型参:fun(char *p)
实参:fun§
*/

/*#include<stdio.h>
#include<string.h>
void fun(char *a)
{
	int i;
	for (i = 0; a[i]; i++)
	{
		a[i] = a[i] + 1;
	}
}
void main()
{
	char a[] = "abcd", *p = a;
	fun(p);
	puts(a);
}*/
  • 11
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值