day07:
一 :第七天主要为计算机中的进制,不详细发了。
二 :变量的存储细节:1 系统会先分配大字节的地址,后去分配小字节的地址。
2 先定义的变量地址大于后定义的地址。
3 高位占高地址,低位在低地址上。(char的本质的整形)
day08:关于数组
一:数组的多种初始化方式:
1:先定义数组 然后进行初始化。:数组只有定义才能够初始化。(在定义数组时,若只定义并没有初始化,那么数组中的值都是垃圾值,所以数组只有初始化了才能够使 用)
计算数组中有几个元素,通过sizeof. 数组中所占用的字节数是sizeof(scores) .计算数组中的元素: int count=sizeof(scores)/ sizeof(int);
1.1 使用常量作为元素的个数;
1.2 使用变量作为元素的个数。使用变量作为元素个数的好处:延长了做下一步的时间,可以在程序运行到这一行的时候去决定创建多少个元素的数组。
2:定义数组的同时同时进行初始化:
2.1 指定元素的个数,同时进行全部的初始化。(遍历数组)
2.2 不指定元素的个数 ,同时进行全部的初始化。int nums[]={1,2,3,4,5};
2.3 指定元素的个数,进行部分的初始化。 int nums[5]={1,2}; ----->没有显示初始化的元素被系统将其初始化为0;
2.4 指定元素的个数,为指定的元素进行初始化 。 int nums[5]={[3]=5,[2]=7};
总结:定义数组的同时进行初始化,不可以使用变量作为元素个数。!(注意)
二:数组的存储细节:
(重要)1:数组的地址就是第一个元素的地址。 2:数组中的元素是一块连续的存储空间。3:下标小的元素在小地址上,下标大的元素在大地址上。数组的地址就是数组所占 用存储空间的首地址。
(重要)注意:注意点1:注意数组角标越界情况。在c语言中越界有时不会报错,会取错值。导致莫名的错误。如果越界离谱,会出现程序崩溃de情况。
注意点2: 使用变量作为元素个数,不可以进行整体赋值。 整体赋值只有在数组定义时才可以,--->在是数组定义后,不可以使用整体赋值方式对数组进行赋值
三:数组与函数:
1:(重要)基本数据类型作为函数参数传递是值传递。而数组作为函数参数传递时地址传递。--->如果在函数中改变数组中的某个值,那么原来实参的值也会改变。
2: (重要)当数组作为函数参数传递时,会被自己转化为指针类型,指针用来存放地址变量。指针占用8个字节的存储空间。所以在自己定义的函数中不能够获取到形参数组的长度,只能由主调函数获取并传入。
3: (注意)不能够将数组作为函数的返回值。所以一般为void作为返回值类型。