每日练习5.9

按照字母顺序排序


sort(char *arr[], int n)
{
	int i, j;
	char* temp;
	for (i = 0; i < n; i++)
	{
		for (int j = n - 1; j >= i; j--)
		//for(j=i+1;j<n;j++)
		{
			if (strcmp(arr[i],arr[j]) > 0)
			{
				temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
}
int main()
{
	int n = 12;
	char ** p;
	int i = 0;
	char* month[] =
	{
		"January",
		"Feruary",
		"March",
		"April",
		"May",
		"June",
		"July",
		"August",
		"September",
		"October",
		"Novermber",
		"December"
	};

	p = month;
	sort(p, n);

	for (i = 0; i < n; i++)
		printf("%s\n", month[i]);

	return 0;
}

int *p=arr;

arr[2]<==>*(p+2)<==>*(arr+2)<==>2[arr]

struct stu *ps = s(自定义结构体)

输出

printf("%s\n", ps ->sb.c)

printf("%s, (*ps).sb.c

打印s的内容

printf("%s,%d,%lf", t.sb.c, t.sb.s, t.sb.d);

printf("%s,%d,%lf",s);   //错误,不能直接将一个结构体变量作为一个整体输入或输出。

传值调用和传址调用

//写一个函数输出

Printf_s(struct stu p)     --->    printf_s(s)

Printf_s(struct stu *ps)   --->    printf_s(&s)

函数调用的参数压栈: 栈,是一种数据结构。    

特点:先进后出,后进先出。

 

( 取自:鹏哥c语言)

每一个函数调用都会在内存的栈区上开辟一个空间

用指针改变结构体成员的值

struct student           //这个要在最前面
{
	int age;
};
Add(struct student* ps)
{
	ps->age += 1;
}


void main()
{
	struct student z ={20};
	//z.age = 20;
	printf("%d\n", z.age);
	Add(&z);
	printf("%d\n", z.age);
}

几种输出方式

struct teacher
{
	char name[20];
	int age;
	int time;
};
zhangsan = { "zhangsan",40,10 };
int main()
{
	struct teacher zhangsan = { "zhangsan",40,10 };
	struct teacher * ps = &zhangsan;                //注意这里是取地址,不要忘记

	//printf("%s,%d,%d\n", zhangsan.name, zhangsan.age, zhangsan.time);
	printf("%s,%d,%d\n",(*ps).name, (*ps).age, (*ps).time);
	printf("%s,%d,%d\n",ps->name, ps->age, ps->time);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值