新手必看 什么是c语言程序设计( 六 )


i=420;
str=(char*)(20);
str="Good, !";
}
上例中,函数(int*)((int))表示分配连续的(int)=2个字节的整型数存储空间并返回其首地址 。同样(char*)(20)表示分配连续20个字节的字符存储空间并返回首地址(有关该函数以后再详述) 。由动态内存分配函数()分配了内存空间后,这部分内存将专供指针变量使用 。
如果要使i指向三个整型数,则用下述方法 。
例如:
#
main()
{
int *i;
i=(int*)(3*(int));
*i=1234;
*(i+1)=4567;
*(i+2)=234;
}
*i=1234表示把1234存放到i指向的地址中去,但对于*(i+1)=4567,如果认为将4567存放到i指向的下一个字节中就错了 。有些C语言编译器中只要说明i为整型指针,则(i+1)等价于 i+1*(int)同样(i+2)等价于i+2*(int) 。
(三)数组与指针的关系
数组与指针有密切的联系 。数组名本身就是该数组的指针,反过来,也可以把指针看成一个数组,数组名和指针实质上都是地址,但是指针是变量,可以作运算 。而数组名是常量,不能进行运算 。

新手必看  什么是c语言程序设计

文章插图
由上例可以看出数组和指针有如下关系:
(p+i)=&(s[i]),*(p+i)=s[i];
因此,利用上述表达式可以对数组和指针进行互换 。两者的区别仅在于:数组s是程序自动为它分配了所需的存储空间;而指针p则是利用动态分配函数为它分配存储空间或赋给它一个已分配的空间地址 。
结构与联合
前面介绍了C语言中的基本数据类型,在实际进行C语言程序设计时仅有这些基本类型的数据是不够的,有时需要将一批各种类型的数据放在一起使用,从而引入了构造类型的数据——结构与联合 。
(一)结构
结构是-种构造类型的数据,它能将多个不同类型的数据变量组合在一起,是一种数据的集合体 。组成该集合体的各个数据变量称为结构成员,集合体使用单独的结构变量名 。结构中的各个变量之间通常具有一定的关联性,如时间数据中的时、分、秒,日期数据中的星期、午、月、日等 。结构是将一组相关联的数据变作为一个整体来进行处理,在程序中使用结构有利于对一些复杂而又具有内在联系的数踞进行处理 。
1. 结构变量的定义
方法一:先定义结构类型再定义结构变量名 。
定义结构类型的一般形式为:
结构名
{结构元素表};
结构元素表为该结构中的各个成员(又称为结构的域),由于结构可以由不同类型的数据组成,因此对结构中的各个成员都要进行类型说明 。
例如定义一个日期结构类型date的格式如下:
新手必看  什么是c语言程序设计

文章插图
定义好一个结构类型之后,就可用它来定义结构变量 。一般格式为:
结构名 结构变量名l,结构变量名2,…,结构变量名n;
例如:
date d1,d2;
方法二:在定义结构类型的同时定义结构变量名 。
将方法一的两个步骤舍在一起,一般格式为:
结构名
{ 结构元素表} 结构变量名1,结构变量名2,…,结构变量名n;
例:
新手必看  什么是c语言程序设计

文章插图
方法三:直接定义结构变量 。这种方法可以省略掉结构名,又称为无名结构,-般形式为:
strut
{ 结构元素表} 结构变量名1,结构变量名2,…,结构变量名n;
例如:
新手必看  什么是c语言程序设计

文章插图
方法四:用命名一个结构类型(这时结构名就不太重要了) 。