定義
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;
}