- A+
/*写一个函数,求一个字符串的长度。在main()函数中输入字符串,并输出其长度*/
#include<stdio.h>
#include<conio.h>
/*定义一个求字符串长度的函数length,并在其中定义了一个字符型指针变量p,用来指向一个字符数组*/
length(char *p)
{
int n; /*首先定义一个计数器n,用于累加*/
n=0;
while(*p!='\0')
{
n++;
p++;
}
return(n);
}
main()
{
int len;
char str[100];
printf("Please input a string:\n");
scanf("%s",str);
len=length(str);
printf("The length of the string is %d.",len);
getch();
}
程序运行截图:
/*C语言规定所有变量在使用前必须定义,指定其类型,并按此分配内存单元*/
/*所谓指针变量,其实就是用一些英文字母或者单词来代替指针变量罢了,和用i,j等来代替整型变量等一样。如用p,pointer_1,pointer_2等定义指针变量。
至于前面的*,只是一个标记,用来说明p,pointer_1,pointer_2等是指针变量罢了。所不同的就是其它变量用来存储数据,而指针变量用来存储其它变量的地址*/
/*定义指针变量的一般形式为:“基类型 *指针变量名”;如下例所示:
int i,j;
int *p1,p2;
第一行定义了两个整型变量i和j,第二行定义了两个指针变量p1和p2,它们分别指向两个整型变量i和j,用来存储i和j的地址。
基类型用来指定该指针变量可以指向的变量的类型。*/
/*指针变量前面加了一个*后,就代表这个指针变量所指向的变量存储的数据了;不加*则表示这个指针变量里面的值为变量的地址*/
/*或者我们可以这样理解:一个指针变量p前面加了*后就成了另外一种变量。如char *p可以理解为char a;char *p;那么*p就是a了*/
/*定义一个指向数组元素的指针变量的方法:
int a[10];
int *p;
*/