指针作为函数

int main(){
	char *p,crr[]={'h','e','l','l','o'},*q;
	p=crr;
	q=crr+5;
	while(p<q){
		printf("%c",*p);
		p++;
	}
	return 0;
}

p q为两个指针p指向crr第一个元素的地址,q则指向最后一个位置,p<q即为p针在q的前面,那他就不断网后移动,每次移动解出一个对应的值。

void swap(int *a,int *b){
	int temp=*a;
	*a=*b;
	*b=temp;
}
 
int main(){
	int x,y;
	x=3;
	y=4;
	swap(&x,&y);
	printf("%d  %d",x,y);
	return 0;
}

这是一个修改函数值的自己实现的函数,但有个问题,如果利用变量名修改的话,那么打印的时候值跟着函数名走的并不会变化,因此我们要从根本上也就是这个函数的地址对这个函数进行修改,因此传输的参数就是这个变量的地址。

int Strlen(char *p){
	char *s = p;
	while(*s != '\0'){
		s++;
	}
	return s-p;
}

这是一个自己实现的计算字符串长度的函数,通过指针没有指到结束字符进行判断循环,最后通过循环之后的指针减去初始指针即可得到长度。

#include <string.h>

c语言里面的字符串要导入这个头文件。`

int main(){
	//字符串的第一种第一种方式,char数组的最后加上转义字符
	char crr[]={'h','e','l','l','o'};//不是字符串 
	char str[]={'h','e','l','l','o','\0'};//'\0'加上转义符就成了字符串
	char *p="hello";//实际上和上面那种定义方式一样,都是指向第一位的地址 
	
	printf("%d  %d\n",Strlen(crr),Strlen(p));
	strcpy(str,"wang");
	printf("%s\n",str);
	printf("%s\n",p);
	printf("%s\n",crr);
	return 0;
}

字符串有两种定义方式:
1.在字符数组的最后加上结束字符
2.直接用char类型的指针定义,这种方式和1其实都是指针指向第一个元素。

strlen是返回字符串长度的函数。
strcpy是将一个新的字符串复制到字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值