数据结构_P7

原创 2016年06月01日 13:58:32
/*
	结构体只有(属性)成员没有方法,类有属性有方法,功能更强大
	2016年6月1日13:53:23
*/
# include <stdio.h>
# include <string.h>   //strcpy()所用
struct Student          //结构体(类也是)是数据类型,而不是定义一个变量,这里没有分配内存
{ 
	int sid;
	char name[20];     //c中没有string类型,想给其覆盖赋值需要用strcpy(name, "asdasd")来改,此函数前需加string.h头文件
	int sage;

};   //分号一定要有

int main(void)
{
	struct Student st = {1000, "zhangsan", 20};   //定义了一个结构体Student类型的变量并赋值,名字为st
	printf("%d\n%s\n%d\n", st.sid, st.name, st.sage);  //%c输出char类型(1个字符),%s输出char数组!!
	
	st.sid = 1012;
	st.sage = 22;    //现在想改变结构体中成员的值,前两个都可以
//	st.name = "lisi";  //这里出错,原因c中char[]数组不能这样重新赋值!!
	printf("%d\n%s\n%d\n", st.sid, st.name, st.sage);  //%c输出char类型(1个字符),%s输出char数组字符串!!
	
	strcpy(st.name, "lisi");
	printf("%d\n%s\n%d\n", st.sid, st.name, st.sage);  //%c输出char类型(1个字符),%s输出char数组!!
	
	return 0;
}

p7_2:

# include <stdio.h>
/*	
	想修改结构体中成员的值怎么做?第一种方式st.sid点方式一个一个改(一般不用);
	第二种方式,指针!!定义结构体类型指针并指向另一结构体,即可用指针访问
* 总结如何使用结构体?--两种方式
*   struct Student st = {1000, "zhangsan", 20};    
*   struct Student *pst = &st;
      1. st.sid;
      2. pst->sid  //pst所指向结构体的sid成员
	2016年6月1日13:58:22
*/
struct Student
{
	int sid;
	char name[20];
	int sage;
};  //分号一定不能少

int main(void)
{
	Student st = {1000, "zhangsan", 20};   //现在想修改st里成员的值
//	st.sid = 96; //第一种方式(舍)

	Student *pst; //定义结构体类型指针,指向st
	pst = &st;
	pst->sid = 99; //记住!!  pst->sid等价于(*pst).sid等价于st.sid 
	printf("sid = %d\n", pst->sid);

	return 0;
}


/*



*/

P7_3:

/*
	静态变量(结构体也是静态的,只要没用到malloc都是静态的)只要定义了就分配内存,不管其是否进行赋值,不赋值就是个垃圾值而已
	2016年6月1日14:02:55
*/
# include <stdio.h>
# include <string.h>

void f(struct Student *pst);
void g(struct Student *pst);

struct Student
{
	int sid;
	char name[20];
	int sage;
};   //分号不能省

int main(void)
{
	struct Student st;   //也分配了一块内存空间,大小大概208个字节,因此一般用结构体传递形参时一定要用指针,因为指针只有4个字节,而传递结构体则耗时间,耗内存;
						//如果没有结构体赋值里面是个垃圾数字。
//	int i;   //已经分配了内存,只不过现在没有赋值,是个垃圾值

	g(&st);  

	f(&st);   //现在f()函数要修改st中的值,通过指针

	g(&st);   //输出用g()函数来实现

	return 0;
}

void f(struct Student *pst)    //vc中可以省去struct,而其他编译器不一定,所以最好还是加上
{
	pst->sid = 99;
//	pst->name = "zhangsan";  //error,char[]数组赋值需要用到strcpy()函数
	strcpy(pst->name, "zhangsan");  //ok
	(*pst).sage = 22;
}

void g(struct Student *pst)
{
	printf("sid = %d\n", pst->sid);
	printf("name = %s\n", pst->name);
	printf("sage = %d\n", pst->sage);
}


版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/pop_rain

p7签名实现

两种p7签名 1、java jce package encrypt; import java.io.ByteArrayInputStream; import java.io.ByteA...
  • wzyzzu
  • wzyzzu
  • 2016年01月20日 10:50
  • 2845

阿里P7攻城狮告诉你如何正确的学习JAVA

1. 思考一下 学习Java之前,先别急,静下心来好好想想: 1)你对学习Java是否有兴趣? 2)你是否能静下心来坚持不懈地学习? 嗯,这是个容易但又绝对不应该忽略的问题,你...
  • a318804626
  • a318804626
  • 2017年12月22日 10:34
  • 187

从P1到P7

今天有同事恭喜我,我才知道自己在淘宝已经七周年了。很多人第一句话就是七年痒不痒,老实说,也曾经痒过,但往往都是一痒而过,又投入到水深火热的工作中去。回家之后就想这七年我到底收获了什么,且不论成败与否,...
  • wisters
  • wisters
  • 2012年02月02日 11:28
  • 3070

p7结构的数字信封

PKCS7的数字信封格式分为两种:带签名的数字信封和不带签名的数字信封。由于这个数字信封的生成过程比较复杂,所以这两种格式比较容易记混,导致都搞不清楚一个数字信封里面到底是存储的什么内容了。下面我就详...
  • yunnysunny
  • yunnysunny
  • 2012年08月23日 16:17
  • 3939

阿里巴巴-菜鸟网络-集成中间件团队招聘,A轮,空间巨大

>>>>>>>>>>>>>【阿里巴巴技术招聘】 招聘部门: 菜鸟网络-集成中间件 招聘岗位: 资深研发(P6),技术专家(P7),高级专家(P8)  岗位职位: 负责全球数据集成的解决方案 薪...
  • rush727
  • rush727
  • 2017年07月19日 19:53
  • 671

华为P7解锁码申请及解锁详细教程

1. 为什么要解锁 解锁是为了能刷入第三方recovery,这样就能刷入第三方ROM包(一般为ZIP格式) 2. 如何申请解锁码 华为机型解锁码申请地址 http://www.emu...
  • ybhjx
  • ybhjx
  • 2017年02月26日 21:32
  • 308

给自己定个目标,向阿里p7前进

定个目标,加油
  • sugarzhang2009
  • sugarzhang2009
  • 2016年12月09日 07:38
  • 464

安卓6.0适配问题 (主华为 p7 p8)

最近半路接手一个项目,这项目从最开始设计的时候是没有兼容到6.0这个版本趋势. 一些普通功能还好,随着项目内功能越来越多,需求也越来越多,所以导致很多问题, 最近在一个技术交流群中,也有很多人问了...
  • qq_34157407
  • qq_34157407
  • 2016年05月14日 19:01
  • 2162

小马哥--高仿华为p7 拆机主板型号X5 主板图与开机界面图 分版本 分日期。具体看图

高仿华为p7 拆机主板型号为x5  机型芯片为6582  分辨率为1280 720   精仿  此机做工与行货基本类似, 看图展示...
  • u011283906
  • u011283906
  • 2015年05月14日 23:05
  • 1268

20180112 今天收到了蚂蚁金服的电话面试 ,去阿里的路还有多远

20180112 今天收到了蚂蚁金服的电话面试 ,去阿里的路还有多远 , 加油 相信自己 在路上...
  • sugarzhang2009
  • sugarzhang2009
  • 2018年01月12日 20:20
  • 1331
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构_P7
举报原因:
原因补充:

(最多只允许输入30个字)