实习日志 姓名:成盛 班级:通卓161
今日学习任务 | 函数与指针 数组与指针 指针与指针 |
今日任务完成情况 | 基本完成 |
今日开发中出现的问题汇总 | 不清楚argc和argv的真正含义 |
今日未解决问题 | 无 |
今日开发收获 | 函数名就是该函数所占内存区的首地址 例如:int (*pf)()是一个变量说明,表示pf是一个指向函数入口的指针变量,该函数的返回值是整型 int *p()是一个函数说明,说明p是一个指针函数。例如int *(*(*fp)(int))[10]: fp是一个指针,指向函数,函数有一个int类型的参数,函数返回值是个指针,指向一个有10个元素的数组,每个元素都是一个整型指针。&a 数组的地址 单位 48字节 a 首行地址 单位为16字节a[0] *a *(a+0) 0行首元素地址 4字节a+1 &a[1] 第二行地址 16字节a[1] *(a+1) 第一行第0列元素地址a[1]+2 *(a+1)+2 &a[1][2] 第一行第二列元素地址 *(a[1]+2) *(*(a+1)+2) a[1][2] 第一行第二列的值 |
自我评价 | 无 |
其他 | 无 |
#include<string.h>
void range(char *a[], int length)
{
int i,j;
char *d;
for(i=0;i<length-1;i++)
{
for(j=0;j<length-i-1;j++)
{
//if(a[j]>a[j+1])
if(strcmp(a[j],a[j+1]) < 0) //a[j]<a[j+1] 从大到小
{
d=a[j+1];
a[j+1]=a[j];
a[j]=d;
}
}
}
}
int main(int argc, char *argv[])
{
int i;
// char *string[100] = {0}; //数组存放在栈空间
range(argv,argc-1);
printf("从大到小排列为: ");
for(i = 0; i < argc ; i++)
{
printf("%s ",argv[i]);
}
printf("\n");
return 0;
}
2、#include<stdio.h>
#include<stdlib.h>
void range(int a, char * b[])
{
int i,j;
char * d;
for(i=1;i<a;i++)
{
for(j=1;j<a-i;j++)
{
if(atoi(b[j]) < atoi(b[j+1]))
{
d = b[j+1];
b[j+1] = b[j];
b[j] = d;
}
}
}
}
int main(int argc, char *argv[])
{
int i,j,d;
range(argc,argv);
for(i = 1 ;i < argc; i++)
{
printf("%s ",argv[i]);
}
printf("\n");
}