实训第四天日志

实习日志                            姓名:成盛       班级:通卓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]   第一行第二列的值
自我评价
其他
1、#include<stdio.h>

#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");
}


扫描二维码关注公众号,回复: 2306128 查看本文章

猜你喜欢

转载自blog.csdn.net/cheng1064233793/article/details/81022827