十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
虽然我不太懂指针,但都看懂了
创新互联建站成立与2013年,先为盐田等服务建站,盐田等地企业,进行企业商务咨询服务。为盐田企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
函数ss(char *s)的作用是求字符串s的长度
char *p=s;//将字符串s的首地址赋给指针p
while(*p)p++;//当p指向的地址未结束时,p指向下一个地址,当循环结束时,p指向的是字符串s的末地址加1
return(p-s);//返回末地址减去首地址的值,就是返回字符串s的长度
所以整个程序就是输出字符串s的长度
举一个用递归调用函数求输入非负整数的阶乘的例子,如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int fact(int n){
if(n==1 || n==0) return 1;
else return n*fact(n-1);
}
int main(void){
int x;
while(1){
printf("Input x(int 12=x=0)...\nx=");
if(scanf("%d",x),x=0 x=12)//x12时会使结果溢出
break;
printf("Error,redo: ");
}
printf("%d! = %d\n",x,fact(x));
return 0;
}
1,调用非自身函数
void main(){
int n=0;
n=fun(n);
printf("%d",n);
}
int fun(int n){
if(n==0){
return 1;
}else{
return 0;
}
}
2,递归,函数调用自身
int fun(int n){
if(n==1){
return 1;
}else{
return n+fun(n-1);
}
}
A是先取函数f返回的内存单元(参数是i即i的地址)中存储的值,并作更改(改为6)
B项 i+6 是算术表达式,不能直接取地址,必须使用变量保存才能取地址
C项 是定义一个指向整型的指针p,并赋值为函数f的返回值(该函数返回一个指针,也就是内存地址)
D项 直接以i为参数执行函数f,返回值不起任何作用