当前位置:文档之家› 结构与联合

结构与联合

结构与联合
结构与联合

首先回顾一下:

上一节课我们学习了指针,这节课我们来学习结构体和联合

今天的目标:

1.结构体

2.联合

3.枚举数据类型

我们之前已经讲述了一张复杂的数据结构类型,数组类型,它是由固定数量的相同的数据类型的元素组成的数据集合体,但是有时我们需要把不同的数据类型作为一个整体集合在一起,这就要用到今天我们要讲的结构。

1.结构体:

(1)什么叫结构体了?

结构是由基本数据类型构成的,并用一个标识符来命名的各种变量的组合。结构中可以使用不同的数据类型。

其实结构也是一种数据类型,可以使用结构变量,因此,像其它类型的变量一样,在使用结构变量时要先对其定义。

(2)表达式:

Struct 结构名

类型变量名;

类型变量名;

..............

}结构变量;

结构名是结构的标识符不是变量名。

构成结构的每一个类型变量称为结构成员,它像数组的元素一样,但数组中元素是以标来访问的,而结构是以变量名称来访问成员的。

这样我们就可以把结构当作一种我们自己定义的数据类型啦,他的用法就和int double ,等一样使用。

下面我们来看一个列子:

Struct string

{

Char name[8];

Int age;\

Char sex[4];

Flaot wage1,wage2,wage3;

}person;

这个列子定义了一个结构名为string的结构变量person,如果省略了变量名person,则变成对结构的说明。用已说明结构名也可定义结构变量。这样定义时上列变成。

Char name[8];

Int age;

Char sex[4];

Float wage1,wage2,wage3;

};

Struct string person;

如果需要定义多个具有相同形式的结构变量时用这种方法比较方便,它先作结构说明,在用结构名来定义变量。

(3)结构变量的定义

程序一旦定义了一个形式结构体,就相当于定义了一个新的数据结构类型,那么就可以把结构名当做像int ,double等数据类型来使用,其表达方式为:

Strurct 结构名结构变量名= [={初值表}];

例如:struct Data wang;

Struct Data li ,zhang;

这里说明(即定义了三个结构变量)wang,li,zhang,都采用了形式结构体Data的模式,其内的成员及其数据类型说明与形式结构体Data给出的完全一样。

注意:结构变量的定义在不同的语言中的定义方式不一样,如在C++中其前面的struct 可以省略,但是在C语言中不能。

结构变量的初始化:结构变量可以在定义它的同时进行初始化,即用一对大括号包围的初值表对该结构变量的每个成员赋初值,其规则与数组一样,大括号包围的初值表按成员排列的先后顺序一一对应赋值,没个初值数据类型必须与其对应的成员项相符合,如下:Struct Data wang = {"王伟",20,"1102室",655555};

但初值表包含的初值个数可少于结构体所包含的成员个数。

计算机只对结构变量分配内存空间,当定义了一个结构变量wang,编译系统则按结构类型Data所给出的内存模式为wang分配内存空间。

结构变量的说明必须在形式结构体定义之后,但结构体定义和结构变量的说明可以同时进行。

Struct 结构名{

数据类型成员名1;

数据类型成员名2;

数据类型成员名3;

.........

数据类型成员名n;

}结构变量名列表;

Struct Data{

Char name[20];

Short age ;

Long tel;

}wang ,li ,zhang;

结构数组的定义

具有相同数据类型的变量可组成数组,指向相同数据类型的指针变量可组成指针数组,具有相同结构类型的结构变量可组成结构数组。

Struct 结构名结构数组名[元素个数] [={初值表}];

结构数组的每个元素都是结构变量,具有相同形式结构体和相同的存储类型,

Struct Data man[3];

Man[3]由三个man[0] man[1] man[2]组成,每个元素都是以Data为结构类型的结构变量。分别取代前面的结构变量wang,li ,zhang,结构数组既有结构变量的属性,又既有数组的属性,对于处理同一结构类型的许多变量特别方便。

struct student{

char name[50];

short age;

}man[2]={{"zhangsan",22},{"lisi",20}};

main()

{

int i ;

printf("编号\t姓名\t年龄\t地址\t电话\n\n");

for(i=0;i<2;i++){

printf("%d\t%s\t%d\t\n",i+1,man[i].name,man[i].age);

}

printf("\n结构类型Data的数据长度:%d字节\n",sizeof(struct student));

getch();

}

(4)结构指针

指向结构体的指针变量称为结构指针,它与其它的各类指针在特性和使用方法上完全相同。结构指针的运算仍按地址运算。

Struct 结构名* 结构指针名[=初始地址值];

Struct Data *pman;

存储类是结构指针本身的存储类型。如果结构指针的说明语句只定义了指向某种结构类型的指针,结构指针并未定向,必须要定义具体的结构变量或结构数组,将他们的首地址赋给相应的结构指针,如下

Pman = man; pd = &hireDate;

也可以在定义结构指针的同时,用初始化操作给他定向。

Struct Data *pman = man;

思考一个问题:结构中是否可以包含结构????

(5)结构体的运算

1.取地址运算

Struct Data HireDate ,*pd;

Struct Data man[3],*paman ;

Pd = &HireDate;

Paman = man;

结构指针名= &结构变量名;

或者结构指针名= 结构数组名;

2.取成员运算

结构数组名.成员名;

结构数组名[下标].成员名;

3.指向成员的运算

做一个题目:

统计学生考试成绩,并计算平均分;

/* HELLO.C -- Hello, world */

#include "stdio.h"

#include "conio.h"

struct exam{

int num;

char name[50];

char sex[4];

short age;

float score;

};

main()

{

struct exam *pst,stu[2] ;

int i ,n=0;

float avg,pass ,total = 0.0;

for(i = 0;i<2;i++){

printf("请输入第%d号学生的考号\n",i+1);

scanf("%d",&(pst+i)->num);

printf("请输入%d号学生的姓名,字符串内不能为空:",stu[i].num);

scanf("%s",stu[i].name);

printf("请输入%d号学生的性别(男键入'M',女键入'F'):",stu[i].num);

scanf("%s",stu[i].sex);

printf("请输入第%d号学生的年龄:",stu[i].num);

scanf("%d",&(pst+i)->age);

printf("请输入%d号学生的考分:",stu[i].num);

scanf("%f",&stu[i].score);

if(stu[i].score>=60){

n++;

total += stu[i].score;

}

avg = total/2;

pass = (float)n/2;

printf("\n考号\t姓名\t性别\t年龄\t分数\n");

for(i=0;i<2;i++){

printf("%d\t%s\t%s\t%d\t%f",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].score);

}

printf("\n及格率=%lf\n",pass*100);

printf("\n平均成绩=%lf\n",avg);

}

getch();

}

好,结构就这么多,大家需要好好的酝酿一下

2.联合(公用体)

有时需要使几种不同类型的变量存放到同一个内存单元。例如,可把一个整形变量,一个字符变量,存放在同一个地址中。以上两个变量在内存中占的字节数不同,但都从同一个地址开始存放。也就是使用覆盖技术,几个变量互相覆盖。这种使几个变量公占同一个内存的结构,称为“共用体”类型的结构。

表达式:

Union 共用体名{

成员列表

}变量列表;

如下:

Union data {

Int i ;

Char ch;;

Float f;

}a,b,c;

也可以将类型申明与变量定义分开;、

即先申明一个union data 类型,在将a,b,c定义为union data类型。

当然也可以直接定义共用体变量。

大家可以看到共用体和结构很相似,但他们的含义是不同的。

结构体变量所占内存长度是个成员的内存长度之和,每个成员分别占有其自己的内存单元。共用体变量所占的内存长度等于最长成员的长度。

共用体的使用方式:

只有先定义了共用体变量才能引用它,而且不能引用共用体变量,而只能引用共用体变量中的成员。

例如:前面定义了a,b,c为共用体变量,下面引用的方式正确的是:

A.i;

A.ch;

不能直接引用共用体变量a;

共用体数据类型的特点:

(1)同一内存段同一时间,在内存中只有一个成员起作用,而且在每一时间也只能存放其中一种。

(2)共用体变量中起作用的成员最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。

a.i=1;

a.c='a';

a.f=1.5;

??在完成以上三个赋值运算后,哪些成员是有效的?哪些是无效的?为什么?

只有a.f是有效的,因为最后一次赋值是向a.f赋值。因此在引用共用体变量时应十分注意当前放在共用体变量中的究竟是哪个成员。

(3)公用体变量的地址和它个成员的的地址是同一地址。

(4)不能对共用体变量名赋值,也不能企图引用变量名来得到一个值,又不能在定义共用体变量时对它初始化。

(5)不能把共用体变量作为函数参数,也不能使函数返回共用体变量。但可以使用指向共用体变量的指针。

%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出

f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可

m(代表一个正整数)

数据最小宽度

n(代表一个正整数)

对实数,表示输出n位小数;对字符串,表示截取的字符个数

%d 十进制有符号整数

%u 十进制无符号整数

%f 浮点数

%s 字符串

%c 单个字符

%p 指针的值

%e 指数形式的浮点数

%x, %X 无符号以十六进制表示的整数

%0 无符号以八进制表示的整数

%g 自动选择合适的表示法

说明:

(1). 可以在"%"和字母之间插进数字表示最大场宽。

例如: %3d 表示输出3位整型数, 不够3位右对齐。

%9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,小数点占一位, 不够9位右对齐。

%8s 表示输出8个字符的字符串, 不够8个字符右对齐。

如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。另外, 若想在输出值前加一些0, 就应在场宽项前加个0。

例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度为4位。

如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。

例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。

(2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。

例如: %ld 表示输出long整数

%lf 表示输出double浮点数

(3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可说明输出为左对齐, 否则为右对齐。

例如: %-7d 表示输出7位整数左对齐

%-10s 表示输出10个字符左对齐

2. 一些特殊规定字符

━━━━━━━━━━━━━━━━━━━━━━

字符作用

──────────────────────

\n 换行

\f 清屏并换页

\r 回车

\t Tab符

\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数━━━━━━━━━━━━━━━━━━━━━━

由本节所学的printf()函数, 并结合上一节学习的数据类型, 编制下面的程序, 以加深对Turbo C2.0数据类型的了解。

例1

#include

#include

int main()

{

char c, s[20], *p;

int a=1234, *i;

float f=3.141592653589;

double x=0.12345678987654321;

p="How do you do";

strcpy(s, "Hello, Comrade");

*i=12;

c='\x41';

printf("a=%d\n", a);

printf("a=%6d\n", a);

printf("a=%06d\n", a);

printf("a=%2d\n", a);

printf("*i=%4d\n", *i);

printf("*i=%-4d\n", *i);

printf("i=%p\n", i);

printf("f=%f\n", f);

printf("f=6.4f\n", f);

printf("x=%lf\n", x);

printf("x=%18.16lf\n", x);

printf("c=%c\n", c);

printf("c=%x\n", c); /*输出字符的ASCII码值c=41*/

printf("s[]=%s\n", s); /*输出数组字符串s[]=Hello, Comrade*/ printf("s[]=%6.9s\n", s);/*输出最多9个字符的字符串s[]=Hello,

Co*/

printf("s=%p\n", s); /*输出数组字符串首字符地址s=FFBE*/

printf("*p=%s\n", p); /* 输出指针字符串p=How do you do*/

printf("p=%p\n", p); /*输出指针的值p=0194*/

getch();

retunr 0;

}

静态变量的用法------static

当static用来修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区。但是局部静态变量在离开作用域之后,并没有被销毁,而是仍然驻留在内存当中,直到程序结束,只不过我们不能再对他进行访问。

在函数的返回类型前加上关键字static,函数就被定义成为静态函数。只是在声明他的文件当中可见,不能被其他文件所用。

提问人的追问2010-03-26 19:51

举个例子!谢谢~嘻嘻

回答人的补充2010-03-26 20:09#include

void f()

{

static i=0;

printf("%d\n",i++);

}

void main()

{

f();

f();

f();

f();

}

https://www.doczj.com/doc/1a4147846.html,/pcnet/programming/7499/show.html

c语言结构与联合

结构与联合 一、结构体 (一)结构体类型的定义 结构体数据类型定义的一般形式为: struct 结构体名 { 类型名 结构体成员名1; 类型名 结构体成员名2; …… 类型名 结构体成员名n ; }; 说明: (1)struct 是结构体定义的标志,其后必须定义一个结构体名,结构体名是一个合法的C 语言标识符,struct 与结构变量名两者合起来共同组成结构体类型名; (2)所有的成员清单必须用一对大括号括起来。 优点:信息整体性强,具有较高的可读性和清晰性,有利于数据的 处理。 (二)结构体变量 1、结构体变量的定义: 结构体变量说明有如下3种方法: (1)定义结构体类型的同时,说明结构体变量。 例:struct student { int num ; charname[20]; char sex ; int age ; float score ; char addr[30]; }student1,student2 (2)在定义结构体类型之后,说明结构体变量。 例:struct student { int num ; charname[20]; char sex ; float score ;

};… student1, student2 注意:将一个变量定义为标准类型(基本数据类型)与定义为结构 体类型不同之处在于后者不仅要求指定变量为结构体类型,而且要 求指定为某一特定的结构体类型,因为可以定义出许许多多种具体 的结构体类型。 (3)用无名结构体类型,直接说明结构体变量。 例:struct Array{ int num; char name[20]; char sex; float score; }student1,student2; 注意: (1)类型与变量是不同的概念,不要混同。只能对变量赋值、存取 或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型 是不分配空间的,只对变量分配空间。 (2)对结构体中的成员(即“域”),可以单独使用,它的作用与地 位相当于普通变量。 (3)成员也可以是一个结构体变量。 (4)成员名可以与程序中的变量名相同,二者不代表同一对象。 2、结构体类型的嵌套定义 方式:struct date { short month; short day; short year; float math; }wang,zhao,zhang; 3、对结构体变量初始化 #include void main()

联合利华公司战略分析报告书

. 联合利华战略分析报告1 公司概况 1.1 公司简介 1929年,荷兰Margrine人造奶油公司和英国Lever Brothers香皂公司合并成联合利华。1930年1月1日,联合利华正式成立。 联合利华(Unilever)是世界是最大的食品和饮料公司之一,在90个国家拥有 生产基地,是世界第一位的冷冻食品、调味品、冰激淋和茶饮料制造商。该公司也是全球第二大洗涤用品、洁肤产品和护发产品生产商。整个集团现有员工近 18万人。而在2009年和201年联合利华又分别收购了Sara Lee的全球身体保养与欧洲清洁剂事业和美发品牌的制造商雅涛(Alberto Culver)。此后,联合利华将成为全球最大护发产品公司,第二大洗发水、第三大发型造型产品公司。整个集团现有员工近18万人,这些员工中的百分之九十都由各公司在本地招募。2007年,该公司营业额550.06亿美元,利润56.41亿美元,位居2008年《财富》500强第122位。每天,在全世界,人们都会接触到联合利华的产品。联合利华的品牌受到各地消费者的信赖,已成长为全世界最成功的日用消费品的生产商之一。事实上,每天有1亿5千万人次选用联合利华的产品。 1.2 企业愿景 联合利华已经在全球范围内设立了新的愿景,清晰明确地指明了长期目标和方向, 愿景包括以下四方面: (1)每一天,我们都致力于创造更美好的未来。

(2)我们的优质产品和服务,使人心情愉悦,神采焕发,享受更加完美生. . 活。 (3)我们将激发人们:通过每天细微的行动,积少成多而改变世界。 (4)我们要开创新的模式,在将公司规模扩大一倍的同时减少我们对环境的不 利影响。 2 组织结构分析 2.1 20世纪80年代 全球地区组织结构:该组织结构允许各国家和地区的管理人员按其特定情况生产有针对性的产品,以及开展营销和销售活动。在一段很长的时期内,这种战略和组织构结构很适合联合利华,促使它成为一家显赫的消费产品企业。 2.2 20世纪90年代

结构体和类的比较

结构是一种用关键字struct声明的自定义数据类型。与类相似,也可以包含构造函数,常数,字段,方法,属性,索引器,运算符和嵌套类型等,不过,结构是值类型。 1.结构的构造函数和类的构造函数不同。 2. a.结构不能包含显式的无参数构造函数。结构成员讲自动初始化为它们的默认值。 b.结构不能包含以下形式的初始值设定类:base(argument-list); 2.对于结构中的实例字段成员,不能在声明时赋值初始化。 3.声明了结构类型后,可以使用new运算符创建构造对象,也可以不使用new关键字。如果不使用new,那么在初始化所有字段之前,字段将保持未赋值状态且对象不可用。 4.结构不支持继承,即一个结构不能从另一个结构或类继承,而且不能作为一个类的基类。但是,结构从基类OBJECT继承。结构也可以实现接口。 5.什么时候用结构呢?结构使用简单,并且很有用,但是要牢记:结构在堆栈中创建,是值类型,而类是引用类型。每当需要一种经常使用的类型,而且大多数情况下该类型只是一些数据时,使用结构能比使用类获得更佳性能。 结构是值类型,所以会影响性能,但根据使用结构的方式,这种影响可能是正面的,也可能是负面的。正面的影响是为结构分配内存时,速度非常快,因为它们将内联或者保存在堆栈中。在结构超出了作用域被删除时,速度也很快。另一方面,只要把结构作为参数来传递或者把一个结构赋给另一个结构(例如A=B,其中A和B是结构),结构的所有内容就被复制,而对于类,则只复制引用。这样,就会有性能损失,根据结构的大小,性能损失也不同。注意,结构主要用于小的数据结构。但当把结构作为参数传递给方法时,就应把它作为ref参数传递,以避免性能损失——此时只传递了结构在内存中的地址,这样传递速度就与在类中的传递速度一样快了。另一方面,如果这样做,就必须注意被调用的方法可以改变结构的值。 class和struct有且仅有一个区别,那就是对于class说明的类成员,函数也好,变量也好,如果没有指定类型,缺省是private限定的。而对于struct,则是public的。 结构体数组效率比类数组效率高(不需要装箱合拆箱)。结构体集合(如Hashtable)效率比类集合效率低。集合的元素是引用类型,所以结构体必须进行装箱和拆箱处理。所以类在大的集合中更有效率。

联合利华的组织变革

一90年代初重组之前,联合利华奉行的是什么战略?公司具有怎样的结构?联合利华的战略和组织结构是否一致?这种战略和组织结构有何优缺点? 1、多国战略 2、自由子公司结构,即每一个主要的国家市场都设有子部门,并全面自治,进行一系列价值创造活动,包括生产、营销和研究开发。 3、是一致的 4、优点:允许各国家和地区的管理人员按其特定情况生产有针对性的产品,以及开展营销活动,该战略注重地区调适,有利于迎合不同国家消费者的口味和偏好。缺点:多国战略使得生产设备的重复性建设,成本高;而且各子公司各自为盟,沟通阻力大,不利于公司向各子公司转移技能和资源。 二到90年代,联合利华的战略、组织和竞争环境之间是否相互匹配?如果不匹配的话,为什么? 到了90年代之后,联合利华的战略、组织形式和竞争环境是不相匹配的,从宝洁的盈利和生产成本就可以看出来。从当时的情况可以看出来,各国对洗涤产品并没有太多的差异化的需求,联合利华的多国战略和和地区组织结构的用处并不大,反而给联合利华增加了生产成本,无法掌握价格优势等一系列的优势 三联合利华在90年代采用了何种战略和组织结构?在联合利华现在的竞争环境中,这样做是否恰当?这种组织和战略转变的优势是什么?成本如何? 1、跨国战略、产品组织结构 2、在现在的竞争环境中,这样不是很恰当,需要稍作改变。由于规模扩大,业务量增加、人员和机构繁杂,引起了职责不清、决策缓慢,不能及时应对市场变化。应该考虑将全球业务进行整合,统一进行人事管理、财务决策,加快决策速度,减少无用沟通和冗杂多余机构。 3、90年代采用的跨国战略、分部制组织结构,这样的转变使得联合利华在全球合理配置生产资源,有效的节省了成本,保持了联合利华的竞争力,母公司和子公司的组织有效沟通、管理和经营。

结构体与联合体习题(含答案)

2013年结构体与联合体习题 选择题 1、若程序中有以下的说明和定义: struct abc { int x;char y; } 花括号后少了分号。 struct abc s1,s2; 则会发生的情况是______。 A) 编译时错B) 程序将顺序编译、连接、 执行 C) 能顺序通过编译、连接、但不能执行D) 能顺序通过编 译、但连接出错 2、有以下程序段 struct st { int x; int *y;}*pt; int a[]={1,2};b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c; 以下选项中表达式的值为11的是 A) *pt->y B) pt->x C) ++pt->x D) (pt++)->x 3、有以下说明和定义语句 struct student { int age; char num[8];}; struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}}; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是______。 A) (p++)->num B) p->num C) (*p).num D) stu[3].age 4、设有如下枚举类型定义 enum language {Basic=3,Assembly=6,Ada=100,COBOL,Fortran}; 枚举量Fortran的值为______。 A) 4 B) 7 C) 102 D) 103 5、以下叙述中错误的是_________。 A)可以通过typedef增加新的类型

结构与联合

首先回顾一下: 上一节课我们学习了指针,这节课我们来学习结构体和联合 今天的目标: 1.结构体 2.联合 3.枚举数据类型 我们之前已经讲述了一张复杂的数据结构类型,数组类型,它是由固定数量的相同的数据类型的元素组成的数据集合体,但是有时我们需要把不同的数据类型作为一个整体集合在一起,这就要用到今天我们要讲的结构。 1.结构体: (1)什么叫结构体了? 结构是由基本数据类型构成的,并用一个标识符来命名的各种变量的组合。结构中可以使用不同的数据类型。 其实结构也是一种数据类型,可以使用结构变量,因此,像其它类型的变量一样,在使用结构变量时要先对其定义。 (2)表达式: Struct 结构名 { 类型变量名; 类型变量名; .............. }结构变量; 结构名是结构的标识符不是变量名。 构成结构的每一个类型变量称为结构成员,它像数组的元素一样,但数组中元素是以标来访问的,而结构是以变量名称来访问成员的。 这样我们就可以把结构当作一种我们自己定义的数据类型啦,他的用法就和int double ,等一样使用。 下面我们来看一个列子: Struct string { Char name[8]; Int age;\ Char sex[4]; Flaot wage1,wage2,wage3; }person; 这个列子定义了一个结构名为string的结构变量person,如果省略了变量名person,则变成对结构的说明。用已说明结构名也可定义结构变量。这样定义时上列变成。

Char name[8]; Int age; Char sex[4]; Float wage1,wage2,wage3; }; Struct string person; 如果需要定义多个具有相同形式的结构变量时用这种方法比较方便,它先作结构说明,在用结构名来定义变量。 (3)结构变量的定义 程序一旦定义了一个形式结构体,就相当于定义了一个新的数据结构类型,那么就可以把结构名当做像int ,double等数据类型来使用,其表达方式为: Strurct 结构名结构变量名= [={初值表}]; 例如:struct Data wang; Struct Data li ,zhang; 这里说明(即定义了三个结构变量)wang,li,zhang,都采用了形式结构体Data的模式,其内的成员及其数据类型说明与形式结构体Data给出的完全一样。 注意:结构变量的定义在不同的语言中的定义方式不一样,如在C++中其前面的struct 可以省略,但是在C语言中不能。 结构变量的初始化:结构变量可以在定义它的同时进行初始化,即用一对大括号包围的初值表对该结构变量的每个成员赋初值,其规则与数组一样,大括号包围的初值表按成员排列的先后顺序一一对应赋值,没个初值数据类型必须与其对应的成员项相符合,如下:Struct Data wang = {"王伟",20,"1102室",655555}; 但初值表包含的初值个数可少于结构体所包含的成员个数。 计算机只对结构变量分配内存空间,当定义了一个结构变量wang,编译系统则按结构类型Data所给出的内存模式为wang分配内存空间。 结构变量的说明必须在形式结构体定义之后,但结构体定义和结构变量的说明可以同时进行。 Struct 结构名{ 数据类型成员名1; 数据类型成员名2; 数据类型成员名3; ......... 数据类型成员名n; }结构变量名列表; Struct Data{ Char name[20]; Short age ; Long tel; }wang ,li ,zhang;

关于返回结构体的函数

(一)不超过8 bytes 的小结构体可以通过EDX:EAX 返回。 本文的范例代码取材于《汇编中函数返回结构体的方法》一文,并在此基础上进行修改和试验。要研究的第一份代码如下,定义一个不超过8 bytes 的小结构体,不超过8 bytes 是因为这个结构体能够用EDX:EAX 容纳,我们之后将看到在release 编译时,编译器能够向返回普通基础类型那样进行返回。 #include //不超过 8 bytes 的“小结构体” struct A { int a; int b; }; //返回结构体的函数 struct A add(int x, int y) { struct A t; t.a = x * y; return t; } int main() { struct A t = add(3, 4); printf("t.a = %ld\n", t.a); return0; } 首先,我们需要解决一个常见困惑,就是要明确这段代码和下面的典型错误代码的区别:char* get_buffer() { char buf[8];

return buf; } 上面的get_buffer 返回的是栈上的临时变量空间,在函数返回后,其所在的空间也就被“回收/释放”了,也就是说函数返回的地址位于栈的增长方向上,是不稳定和不被保证的。 那么返回结构体的函数则不同,你可以发现返回结构体的函数是工作正常有效的。在add 函数中有一个临时性结构体t,毫无疑问,t 将在add 函数返回时被释放,但由于t 被当做“值”进行返回,因此编译器将保证add 的返回值对于add 的调用者(caller)来说是有效的。 另外需要明确的一点是,我个人觉得,现实里这种返回结构体的方式比较少见,后面将会看到这样做会产生临时对象和多余拷贝过程,效率不高。常见方法是传递结构体指针。但作为语言上允许的方式,有必要弄清楚编译器如何实现这种方式,而要弄清楚这个问题,需要查看汇编代码。使用VC6 输入上述代码,下面分别给出其汇编代码。 (1)debug 版本,汇编代码如下。 small_struct_debug 下面是实现方式的栈示意图:

联合利华公司战略分析报告书

联合利华战略分析报告1 公司概况 1.1 公司简介 1929年,荷兰Margrine人造奶油公司和英国Lever Brothers香皂公司合并成联合利华。1930年1月1日,联合利华正式成立。 联合利华(Unilever)是世界是最大的食品和饮料公司之一,在90个国家拥有生产基地,是世界第一位的冷冻食品、调味品、冰激淋和茶饮料制造商。该公司也是全球第二大洗涤用品、洁肤产品和护发产品生产商。整个集团现有员工近18万人。而在2009年和201年联合利华又分别收购了Sara Lee的全球身体保养与欧洲清洁剂事业和美发品牌的制造商雅涛(Alberto Culver)。此后,联合利华将成为全球最大护发产品公司,第二大洗发水、第三大发型造型产品公司。整个集团现有员工近18万人,这些员工中的百分之九十都由各公司在本地招募。2007年,该公司营业额550.06亿美元,利润56.41亿美元,位居2008年《财富》500强第122位。每天,在全世界,人们都会接触到联合利华的产品。联合利华的品牌受到各地消费者的信赖,已成长为全世界最成功的日用消费品的生产商之一。事实上,每天有1亿5千万人次选用联合利华的产品。 1.2 企业愿景 联合利华已经在全球范围内设立了新的愿景,清晰明确地指明了长期目标和方向,愿景包括以下四方面: (1)每一天,我们都致力于创造更美好的未来。 (2)我们的优质产品和服务,使人心情愉悦,神采焕发,享受更加完美生

活。 (3)我们将激发人们:通过每天细微的行动,积少成多而改变世界。 (4)我们要开创新的模式,在将公司规模扩大一倍的同时减少我们对环境的不利影响。 2 组织结构分析 2.1 20世纪80年代 全球地区组织结构:该组织结构允许各国家和地区的管理人员按其特定情况生产有针对性的产品,以及开展营销和销售活动。在一段很长的时期内,这种战略和组织构结构很适合联合利华,促使它成为一家显赫的消费产品企业。 2.2 20世纪90年代 全球产品组织结构:联合利华以跨国战略寻求在营销和销售上的地区调适、

结构体与联合体习题含答案

) (含答案结构体与联合体习题结构体与联合体习题2013年选 择题1、若程序中有以下的说明和定义:struct abc{ int x;char y; } 花 括号后少了分号。struct abc s1,s2;。则会发生的情况是______B) 程序将顺序编译、连接、 执行A) 编译时错 D) 能顺序通过编译、但连接出错C) 能顺序通过编译、连接、但不能执行 2、有以下程序段struct st{ int x; int *y;}*pt;int a[]={1,2};b[]={3,4};struct st c[2]={10,a,20,b};pt=c;的是以下选项中表达式的值为11D) (pt++)->x C) ++pt->x A) *pt->y B) pt->x 、有以下说明和定义语句3struct student{ int age; char num[8];};,?403}};struct student *p=stu;______。以下选项中引用结构体变量成员的表达式错误的是 stu[3].age D)B) p->num C) (*p).num A) (p++)->num 4、设有如下枚举类型定义 enum language {Basic=3,Assembly=6,Ada=100,COBOL,Fortran};。Fortran枚举量的值为______D) 103 102 B) 7 C) A) 4 。、以下叙述中错误的是_________5增加新的类型可以通过typedef A)typedef可以用将已存 在的类型用一个新的名字来代表B)typedef定义新的类型名后,原有类型名仍有效C)用typedef 可以为各种类型起别名,但不能为变量起别名D)用6、有以下程序段 typedef struct NODE { int num; struct NODE *next; } OLD; 以下叙述中正确的是 A)以上的说明形式非法 B) NODE是一个结构体类型 C) OLD是一个结构体类型 D) OLD是一个结构体变量 7、以下选项中不能正确把cl定义成结构体变量的是______。 1.typedef struct {int red; int green; 结构体与联合体习题(含答案) int blue; } COLOR; COLOR cl; 2.struct color cl { int red; int green; int blue; }; 3.struct color { int red; int green; int blue; }cl; 4.struct

联合利华公司战略分析报告

联合利华战略分析报告 1 公司概况 1.1 公司简介 1929年,荷兰Margrine人造奶油公司和英国Lever Brothers香皂公司合并成联合利华。1930年1月1日,联合利华正式成立。 联合利华(Unilever)是世界是最大的食品和饮料公司之一,在90个国家拥有生产基地,是世界第一位的冷冻食品、调味品、冰激淋和茶饮料制造商。该公司也是全球第二大洗涤用品、洁肤产品和护发产品生产商。整个集团现有员工近18万人。而在2009年和201年联合利华又分别收购了Sara Lee的全球身体保养与欧洲清洁剂事业和美发品牌的制造商雅涛(Alberto Culver)。此后,联合利华将成为全球最大护发产品公司,第二大洗发水、第三大发型造型产品公司。整个集团现有员工近18万人,这些员工中的百分之九十都由各公司在本地招募。2007年,该公司营业额550.06亿美元,利润56.41亿美元,位居2008年《财富》500强第122位。每天,在全世界,人们都会接触到联合利华的产品。联合利华的品牌受到各地消费者的信赖,已成长为全世界最成功的日用消费品的生产商之一。事实上,每天有1亿5千万人次选用联合利华的产品。 1.2 企业愿景 联合利华已经在全球范围内设立了新的愿景,清晰明确地指明了长期目标和方向,愿景包括以下四方面: (1)每一天,我们都致力于创造更美好的未来。 (2)我们的优质产品和服务,使人心情愉悦,神采焕发,享受更加完美生活。 (3)我们将激发人们:通过每天细微的行动,积少成多而改变世界。 (4)我们要开创新的模式,在将公司规模扩大一倍的同时减少我们对环境的不利影响。 2 组织结构分析 2.1 20世纪80年代

C语言题库第8章 结构体和共同体

第八章结构体和共同体 一、单项选择 1. 若有以下定义: struct link { int data; struct link *next; }a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构,若指针p指向a,指针q指向c。 则能把c插入到a和b之间形成新的链表的语句是( C ) 2. 若有以下程序段: int a=1,b=2,c=3; struct dent { int n ; int *m ; } s[3] = {{101,&a},{102,&b},{103,&c}}; struct dent *p=s ; 则以下表达式中值为2的是( D )。 3. 下面程序的运行结果是( D )。 #iunclude int main ( ) { struct complx { int x; int y ;

}cnum[2]={1,3,2,7} ; printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x) ; return 0; } 二、程序设计 1. /*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s 中,请编写函数fun, 它的功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #define N 16 typedef struct { char num[10]; int s ; }STREC; void fun (STREC a[]) { /*********Begin*********/ /*********End**********/ } int main () { FILE *wf,*in; STREC s[N]={{ "GA005",85},{"GA003",76},{"GA002",69},{"GA004",85}, {"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87}, {"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91}, {"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}}; int i; fun(s); printf("The data after sorted :\n"); for (i=0; i

联合利华和宝洁公司品牌战略对比分析报告

联合利华成立于1929年,是由荷兰Margrine Unie人造奶油公司和英国Lever Brothers 香皂公司合并而成。宝洁公司创立于1837年,最初只是一家专门制造肥皂的小公司。在80年代后期,两者相继进入我国日化类消费品市场,面对相同的目标市场、相同的产品类别,联合利华与宝洁公司不约而同的选择了品牌化经营道路,从而打造自己的知名品牌。联合利华与宝洁公司进入我国市场发展至今,凭借其成功的品牌战略迅速发展,占据了我国日化类消费品市场大半壁江山。 作为日化类消费品企业,洗发护发类产品始终占据着重要地位,既是企业发展的重要领域,又是消费者日常生活中必不可少的部分。联合利华与宝洁公司在这一市场上,根据其企业自身的不同特点,对于品牌这一战略武器的运作各显其能,取得了全球化的成功。由此可见,品牌战略在企业的建设与发展中,占据了非常重要的地位。但是我国相关企业品牌意识淡薄,还未形成系统的品牌建设战略意识,本文通过对联合利华与宝洁公司品牌战略的对比分析,旨在为我国企业寻求一条适合自身发展的品牌国际化发展道路。把我们自己的品牌做大、做强,走向国际舞台。 一、品牌战略的涵义 所谓品牌战略,就是指企业为了提高企业产品的竞争力而进行的,围绕着企业及其产品的品牌而展开的形象塑造活动。它是企业为了生存和发展而围绕品牌进行的全局性的谋划方 企业品牌战略的组织构架,主要涉及了三部 分,分别是:企业市场定位、企业品牌战略选择 以及企业品牌战略的应用。对企业的品牌战略进 行分析,需要从这三方面进行。(如图1) (图1)品牌战略组织构架二、联合利华与宝洁公司品牌战略对比分析 本文对联合利华与宝洁公司的品牌战略进行对比分析,选择了洗发护发用品市场作为分析对象。作为日化类消费品企业,洗发护发类产品始终占据着重要地位,既是企业发展的重要领域,又是消费者日常生活中必不可少的部分。联合利华与宝洁公司对于品牌这一战略武器的运作,在这一领域最能得到体现。 (一)联合利华与宝洁公司的市场定位

联合利华公司战略分析报告

联合利华战略分析报告1 公司概况 公司简介 1929年,荷兰Margrine人造奶油公司和英国Lever Brothers香皂公司合并成联合利华。1930年1月1日,联合利华正式成立。 联合利华(Unilever)是世界是最大的食品和饮料公司之一,在90个国家拥有生产基地,是世界第一位的冷冻食品、调味品、冰激淋和茶饮料制造商。该公司也是全球第二大洗涤用品、洁肤产品和护发产品生产商。整个集团现有员工近18万人。而在2009年和201年联合利华又分别收购了Sara Lee的全球身体保养与欧洲清洁剂事业和美发品牌的制造商雅涛(Alberto Culver)。此后,联合利华将成为全球最大护发产品公司,第二大洗发水、第三大发型造型产品公司。整个集团现有员工近18万人,这些员工中的百分之九十都由各公司在本地招募。2007年,该公司营业额亿美元,利润亿美元,位居2008年《财富》500强第122位。每天,在全世界,人们都会接触到联合利华的产品。联合利华的品牌受到各地消费者的信赖,已成长为全世界最成功的日用消费品的生产商之一。事实上,每天有1亿5千万人次选用联合利华的产品。 企业愿景 联合利华已经在全球范围内设立了新的愿景,清晰明确地指明了长期目标和方向,愿景包括以下四方面: (1)每一天,我们都致力于创造更美好的未来。 (2)我们的优质产品和服务,使人心情愉悦,神采焕发,享受更加完美生活。 (3)我们将激发人们:通过每天细微的行动,积少成多而改变世界。 (4)我们要开创新的模式,在将公司规模扩大一倍的同时减少我们对环境的不利影响。 2 组织结构分析 20世纪80年代 全球地区组织结构:该组织结构允许各国家和地区的管理人员按其特定情况生产有针对性的产品,以及开展营销和销售活动。在一段很长的时期内,这种战略和组织构结构很适合联合利华,促使它成为一家显赫的消费产品企业。 20世纪90年代 全球产品组织结构:联合利华以跨国战略寻求在营销和销售上的地区调适、集中制造和产品开发活动相平衡,以实现规模经济并实施在整个地区同时将产品投放市场的战略。这种组织和战略转变的优势是有利于在全球范围内合理配置有

C语言中联合和结构有什么区别

前面对联合变量的定义和联合变量成员的表示以及对联合变量的赋值作了描述,可以看出联合与结构有许多相似之处,但是也指出了两者的最大区别在于联合是共址的,结构是异址的。即联合的所有成员共同使用一个内存地址,而结构的每个成员都有自己的内存地址。 由于联合的共址特性使得它与结构产生了很大差别。例如,在斌初值时,联合变量只能给第一个成员赋初值;不能对联合变量名赋值;不能用联合变量作函数参数,也不能用联合变量作函数的返回值,只能用指向联合变量的指针作函数参数。 下面举出两个例子说明联合变量的使用和特点。 [例9.1] 分析下列程序的输出结果,进而说明联合变量的成员是共址的。 union data { char c_data; int i_data; float f_data; }; main() { union data dl; d1.c_data='a'; dl.i_data=5; d1.f_data=3.7; printf ("%c\t%d\t%.2f\n",dl.c._data,dl.i_data,dl. f,data); printf("%d\n',sizeof(dl)); printf(" %p\t%p\t%p\t%p\n",&dl.c_data,&dl.i_data,&dl.f.data,&dl); }

执行该程序输出结果如下: ? ? 3.7(?表示无意义) 4 FFD6 FFD6 FFD6 FFD6 说明: (1)该程序中,首先定义一个联合,其名为data,它有3个成员,分别是三种不同类型。又定义联合变量d3,并给它的三个成员分别赋值。当使用printf ()函数输出dl的三个成员的值时,前两个成员输出值是无意义的,只有最后一个成员是有意义的,其值为3. 7.这说明:某一时刻一个联合变量中只有一个成员起作用,其他成员不起作用。 (2)输出,SizeoE(dl )的值为4,这说明联合变量d1占内存4个字节。在多个联合成员共占一个内存地址时,该地址所指向的内存空间是所有成员中占内存空间最大的成员所占的内存空间。该例中的三个成员所占内存字节数分别为1.2和4,最大的是4,因此,联合变量dl所占内存空间为4个字节。 (3)使用printf ()函数分别输出联合变量dl的三个成员的内存地址都是相同的,并且与联合变量dl的地址值也是相同的,可见联合变量各成员是共址的。

函数与结构体

函数与结构体 写出下面程序的执行结果。 #include struct tree { int x; int y; } t; voidfunc(struct tree t) { t.x = 10; t.y = 20; } main() { t.x = 1; t.y = 2; func(t); printf("%d %d\n", t.x, t.y); } 为了加深对结构的理解,下面编写几个用于对点和矩形进行操作的函数 把结构体传递给函数的方式有三种:一是分别传送各个结构成员,二是传送整个结构,三是传送指向结构的指针。 一 /* makepoint: 通过x、y值确定一个点*/ struct point makepoint(int x, int y) { struct point temp; temp.x = x; temp.y = y; return temp; } 注意,变元和结构成员同名不会引起冲突,事实上,重名强调了两者之间的关系。 现在可以用makepoint动态初始化任意结构,也可以向函数提供结构类型变元: structrect screen; struct point middle; struct point makepoint(int, int); screen.pt1 = makepoint(0, 0); screen.pt2 = makepoint(XMAX, YMAX); middle = makepoint((screen.pt1.x + screen.pt2.x) / 2, (screen.pt1.y + screen.pt2.y) / 2);

结构体与联合体习题含答案)

2013年结构体与联合体习题选择题 1、若程序中有以下的说明和定义: struct abc { int x;char y; } 花括号后少了分号。 struct abc s1,s2; 则会发生的情况是______。 A) 编译时错B) 程序将顺序编译、连接、执行 C) 能顺序通过编译、连接、但不能执行D) 能顺序通过编译、但连接出错 2、有以下程序段 struct st { int x; int *y;}*pt; int a[]={1,2};b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c; 以下选项中表达式的值为11的是 A) *pt->y B) pt->x C) ++pt->x D) (pt++)->x 3、有以下说明和定义语句 struct student { int age; char num[8];}; struct student stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}}; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是______。 A) (p++)->num B) p->num C) (*p).num D) stu[3].age 4、设有如下枚举类型定义 enum language {Basic=3,Assembly=6,Ada=100,COBOL,Fortran}; 枚举量Fortran的值为______。 A) 4 B) 7 C) 102 D) 103 5、以下叙述中错误的是_________。 A)可以通过typedef增加新的类型 B)可以用typedef将已存在的类型用一个新的名字来代表 C)用typedef定义新的类型名后,原有类型名仍有效 D)用typedef可以为各种类型起别名,但不能为变量起别名 6、有以下程序段 typedef struct NODE { int num; struct NODE *next; } OLD; 以下叙述中正确的是 A)以上的说明形式非法B) NODE是一个结构体类型 C) OLD是一个结构体类型D) OLD是一个结构体变量 7、以下选项中不能正确把cl定义成结构体变量的是______。

结构体在函数中的应用

结构体在函数中的应用 前天在编写一段代码时突然对结构体在函数中的用法有些模糊了,经过复习,基本弄清了这些知识,特总结如下: 一、结构体与函数参数 结构体作函数参数可分为传值与传指针。 1.传值时结构体参数会被拷贝一份,在函数体内修改结构体参数成员的值实际上是修改调用参数的一个临时拷贝的成员的值,这不会影响到调用参数。在这种情况下,由于涉及到结构体参数的拷贝,程序空间及时间效率都会受到影响,所以这种方法基本不用。 例如: 2.传指针时直接将结构体的首地址传递给函数体,在函数体中通过指针引用结构体成员,可以对结构体参数成员的值造成实际影响。这种用法效率高,经常采用。 例如: 二、结构体与函数返回值 对于某些版本的C语言编译器,返回值仅能为基本数据类型如int、char以及指针,因此结构体作为一种组合数据类型,不能以值的方式返回,而在有些版本的C编译器中又可以直接返回结构体变量,在C++中也是可以直接返回结构体变量的。 直接返回结构体变量示例如下;

以指针方式返回结构体示例如下: 关于结构体,看内核又遇到了,关于赋值中存在·的奇怪用法,在网上没有找到答案,却把以前一直弄的比较模糊的对齐问题给翻出来了。如下为转发内容: 齐原则总结:(在没有#pragma pack宏的情况下): 原则1:数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储)。 原则2:结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部

营销组织结构

营销组织结构 营销组织及其结构是营销工作的手段,是企业为了实现经营目标、发挥营销职能内有关 部门协作配合的有机的科学系统,是企业内部连接其他职能部门使整个企业经营一体化 的核心。 常见的营销组织结构可以划分成以下几种类型:职能型、 地理区域型、产品/品牌型、市场/顾客型、产品-市场型。 13.1.1 职能型营销组织 职能型营销组织是最常见的营销组织形式,它是将营 销职能加以扩展,选择营销各职能的专家组合在一起来 组建营销各职能部门,使之成为公司整个组织的主导形 式。如图13-1所示,这种职能型营销组织有五种专业职 结束 能部门,而事实上职能部门的数量可以根据公司经营的 需要增减,例如客户管理经理、物流管理经理等等。 职能型营销组织的主要优点在于它从专业化中获得的优越性。这种优越性主要表现在:(1)将同类型的营销专家归在一起,易于管理,可以产生规模经济;(2)按功能分工,可以避免重复劳动,减少人员和设备的重复配置,提高工作效率;(3)由于专业人员在同一个职能部门的相互影响,可以产生系统效应;(4)通过给员工们提供与同行们“说同一种语言”的机会而使他们感到舒适和满足。 随着公司产品品种的增多和市场的扩大,这种职能型营销组织越来越暴露其效益低下的弱点。其突出弱点为:(1)各部门常常会因为追求本部门目标,而看不到全局的最佳利益;(2)这种按功能划分的结构通常是比较刻板的,随着公司业务量的增大职能部门之间的协调难度也会日趋增加;(3)由于没有一个部门对一项产品或一个市场负

全部责任,因而没有按每项产品或每个市场制定完整的计划,于是有些产品或市场就容易被忽略;(4)各职能部门都争相要求使自己的部门获得比其他部门更多的预算和更重要的地位,使得营销副总经理经常疲于调解部门纠纷。因此这一组织形式适用于那些产品种类不多、目标市场相对较集中的中小企业。 13.1.2 地理区域型营销组织 在全国范围进行销售的公司,通常按地理区域设立营销组织,安排其销售队伍。在营销副总经理主管下,按层次设全国销售经理、大区销售经理、地区销售经理、分区销售经理、销售人员。假设,一位负责全国销售的销售经理领导4位大区销售经理,每位大区销售经理领导6位地区销售经理,每位地区销售经理领导8位分区销售经理,每位分区销售经理直接领导10位销售人员。从全国销售经理到分区销售经理,再到销售人员,所管辖的人数即“管理幅度”逐级增大,呈自上而下自然的“金字塔”型组织结构,如图13-2所示。 国际上许多大公司都采用这样一种营销组织,如联合利华、IBM等。地理区域型营销组织的创始者是金宝汤料公司,它为不同地区推出不同配方的汤料。公司把美国划分为22个区域,各区域制定当地的营销方案,并且编制自己的广告等促销预算。 13.1.3 产品/品牌型营销组织

联合利华组织结构

五、组织结构 几十年来,联合利华一直放手经营。 每一个主要的国家市场都设有子公司, 并全面自治,进 行一系列的价值创造活动,包括生产、营销和研究开发。 1930年,荷兰一家人造黄油公司和英国一家肥皂公司合并成为联合利华。它有两家母公司、 两个总部(分别设在英国伦敦和荷兰的鹿特丹 )、两个董事长,母公司股票分别单独上市。 联席董事长制度 1996年之前,公司的管理权力主要由集团的特别委员会行使,该委员会由两名董事长和一 名董事组成。在两家母公司下是分布在各个国家的众多业务公司, 这些业务公司又分属于两 家母公司。后来,特别委员会改为执行委员会。这种结构造成了职责不清、决策缓慢。多年 (母女结构) 1990年代末,联合利华陷入困境,不得不启动重组,其内容包括进行组织结构调整、压缩 产品线以及裁员等。改革后,联合利华的全球业务被合并为两大全球业务部, 即食品业务部、 家庭用品及个人护理用品业务部。 其全球组织运营架构采取按地域组织的原则, 如食品业务 部分为亚洲区、欧洲区、北美区、拉美区、非洲中东土耳其区,地区总裁全面负责某一地区 2004年,联合利华业绩亮起红灯,发布了“同一个联合利华”的重组计划,旨在建立一个 更加精干和灵活的业务结构,推动联合利华快速增长。 2005年4月,联合利华再次打破延 续多年的治理结构,。原任联席董事长的夏思可改任集团 CEO 另一位联席董事长安东尼-伯 格曼斯担任非执行董事长。至此,联合利华集团才终于有了第一位单独负责公司经营的 CEO 经过此次改革,联合利华原来的执行委员会以及 11个业务部被取消。管理大权掌握在 集团CEO 及其运营团队手中。该团队成员包括欧洲区、非洲区和亚洲区总裁,食品业务总裁 和家庭及个人护理业务总裁,首席财务官以及首席人力资源官。 2008年之前,联合利华的侧重点是在其业务分布的各个主要国家推行“同一个联合利 华”的运营模式,实现地区内部的统一。从 2008年开始,联合利华着手设立 4个新的区域 性总部,即其所谓的“多国组织”,其目的是通过区域性的集中管理,使联合利华在各区域 的单位共享人力资源、IT 和财务等服务职能,从而提高企业运营效率。夏思可的举措实际 上是通过“削蕃”来加强“中央集权”,使地方经理不再像以前那样大权在握,从而有利于 “中央”意志的贯彻以及集团内的协作。 来,投资者一直呼吁联合利华改革其复杂的管理结构。 自由子公司结构 的运营。 国际业务部结构

相关主题
文本预览
相关文档 最新文档