结构和数组随书笔记

来源:互联网 发布:日本妹子发型 知乎 编辑:程序博客网 时间:2024/05/19 18:40

结构

       结构不可以这样赋值

       Structcomplex_struct z1;

       Z1={3.0,4.0};

可以这样初始化 structcomplex_struct z1={3.0,4.0};,在局部变量中还可以这样赋值:

       Doublex=3.0; struct complex_struct z1={x,4.0};但是全局变量中不可以。可以这样给结构赋值:z1.x=3.4;z1.y=4.0;还可以只初始化结构中的部分成员,未初始化成员为0。

数组

       可以定义一个由若干个结构体元素组成的数组,也可以定义一个包含数组成员的结构体:structcomplex_struct{double x,y;}a[4];                     struct{doublex,y;   int count[4];}s;

在c语言中后缀运算符的优先级最高,单目运算符的优先级仅次于后缀运算符,比其他运算符的优先级都高,所以++count[2]表示的是对count[2]做前缀++运算。Inta=1; ++a++??

给数组初始化部分元素时可以这么初始化 intcount[4]={[2]=3};其他成员为0。

       数组与结构体最显著的不同是:数组不能相互赋值或初始化,而结构体可以。如:

              Inta[4]={2,5,}; int b [4]=a;或者a=b;  都是错的。而structcomplex_struct a={1.0,2.0} ,b; b=a;是可以的,这也意味着数组不能作为函数的参数返回值。

       在库<stdlib.h>中有一个函数rand(),它可以返回一个0~RAND_MAX之间的任意数,RAND_MAX很大,要是只要0—9的数可以这样inta=rand()%10;

       Time(NULL)函数返回一个值,该值为当前系统时间距1970年1月1日00:00:00的秒数,它在<time.h>中定义,而srand()可以给rand确定一个初值Seed,如srand(time(NULL));可以给rand确定一个初值。这在一定程度上达到获得随机数的目的。

字符数组:

       如果定义的字符数组长度刚好比字符串字面值少一位,用字符串字面值给字符数组赋值时,编译器也不会报错,但是字符数组后面没有’\0’,即没有结束符。

 

原创粉丝点击