黑马程序员--C语言自学笔记---08数组

时间:2022-11-24 00:27:08

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


1.   整型变量的存储空间

short  2字节   %hd

int      4字节   %d  %i

long   8字节   %ld

longlong 8字节  %lld

unsigned   %u

2.   改变整型数的符号

原来最高位表示一个数的符号,现在用来计算,计算机中默认为有符号数

使用unsigned关键字,把一个有符号数变为一个无符号数

char类型的存储

3.   char类型的存储

1)        char类型字符直接存储是把其ascii码转换为二进制后以int类型进行存储的,sizeof(‘a’)为4

2)        char类型的变量是以一个字节进行存储的int ch=’a’,sizeof(ch)为1

4.   数组:一组具有相同数据类型的数据的有序的集合

1)   数组名定义严格遵守标识符命名规范

2)   数组名不能与其他变量同名

3)   数组的长度不可以为变量

int c;int a[c]  ×

4)   数组的长度可以使用宏定义

5)   定义数组还可以与其他变量一起定义int a,b,c[3];

5.   数组的初始化

1)        特殊的一种初始化方法:int a[9]={[2]=1,[4]=67}定义数组的同时对指定下标的数组元素进行赋值。

2)        如果未初始化,数组是有值的,但是是垃圾值

3)        如果数组进行的是部分初始化,其余未初始化的元素会有默认的值

①  int类型默认初始化为0

②  float类型默认初始化为0.0

③  char类型的默认初始化为ascii码为0的字符

4)        注意:如果使用的是先定义数组,再部分初始化时,未初始化的元素仍为垃圾数

6.   数组的存储

1)        同一数组的元素在内存中是连续存储的,先定义存储在高地址,后定义的存储在低地址

2)        用&来获取数组元素的地址,&a[0]就是a[0]这个元素的内存地址

3)        数组名是一个常量,存储的是数组的首地址

4)        计算数组所占字节数,使用sizeof(数组名),sizeof(a)即为数组a所占的字节数

5)        计算数组长度,int a[]={1,2,3,4,5,6,7,8},数组长度计算式为:sizeof(数组名)/sizeof(数组类型)比如len =sizeof(a)/sizeof(int )

7.   用数组名作为函数的形参

1)        重要:用数组名作为形参,实参和形参之间是地址传递,变量做形参是值传递。实例:定义一个函数来交换两个数的值时,不能用变量作为形参,而用数组名做形参可以。

2)        形参数组的长度和实参数组的长度要一致,否则可能会是数组丢失数据

3)        实参和形参的类型要一致

4)        形参数组的长度可以不写

5)        数组名作为函数参数,会发生数组长度丢失,在自己定义的函数中使用sizeof(数组名)时,其结果为8,因为此时的数组名传过来的只是一个地址。

6)        C语言中,任何类型的数据的内存地址都占8个字节

8.   冒泡排序

void sort(int arr[],int length){
int temp;
for(inti=0;i<length-1;i++){
for(intj=0;j<length-1-i;j++){
if(arr[j]<arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}