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是将一个新的字符串复制到字符串。