定义
strlong示例代码
代码1:
#include<stdio.h>
#include<string.h>
//返回指针的函数//比较两个字符串,返回更长的字符串
char *strlong(char* a,char* b)
{char *p1=&a[0];char *p2=&b[0];while(true){if(*p1=='\0'){return b;}else if(*p2=='\0'){return a;}p1++;p2++;}}
int main()
{char a[]="ydfrgtdfghjkl;77777";char b[]="defrtyuiof";char *c=strlong(a,b);printf("result=%s\n",c);if(strcmp(c,a)==0){printf("a\n");}else if(strcmp(c,b)==0){printf("b\n");}getchar();return 0;
}
代码2:
#include<stdio.h>
#include<string.h>
//返回指针的函数//比较两个字符串,返回更长的字符串
char *strlong(char* a,char* b)
{return strlen(a)>=strlen(b)?a:b;
}
int main()
{char a[100];char b[100];printf("a=\n");gets(a);//接收一个字符串printf("b=\n");gets(b);char *c=strlong(a,b);printf("result=%s\n",c);if(strcmp(c,a)==0){printf("a\n");}else if(strcmp(c,b)==0){printf("b\n");}getchar();return 0;
}
局部变量
函数在返回地址时,局部变量使用static
c程序内存布局:
案例–随机数
题目:
知识点:
#include<stdlib.h>
随机数函数:rand()
rand() 会随机生成一个位于 0 ~ RAND_MAX(一个很大的数) 之间的整数。
int a = rand() % 10; //产生0~9的随机数,注意10会被整除
rand()%n;//产生0—n-1之间的数
代码
#include<stdio.h>
#include<stdlib.h>//返回指针的函数--随机数int *random()
{static int arr[10];int i;for(i=0;i<10;i++){arr[i]=rand()%100;//0—99之间的数}return arr;
}int main()
{int i=0;//int *arr=random()=arr=&arr[0]=arr[0]的地址//%d *arrint *arr=random();printf("写法1:\n");while(i<10){printf("arr[%d]=%d\n",i,*arr);arr++;i++;}printf("写法2:\n");for(i=0;i<10;i++){printf("arr[%d]=%d\n",i,*arr+i);}getchar();return 0;
}