黑马程序员 IOS基础第八天

整形变量修饰符
改变整形变量的存储空间 
short int a=4    
short  2字节     %hd
int     4字节    %d     
long 8字节    %ld 
long long 8字节  %lld 
整形变量修饰符 
    给不整形变量占用的存储空间 
    int short long longlong 
    改变一个数的符号 
    signed unsigned 
下面没懂 
技术分享
—————————————————————— 
改变一个数的符号:表示原来最高位用作表示一个数的正负,现在用来参与计算   
计算机默认的是一个有符号数 
无符号数用%u输出 
技术分享
————————————————————
char类型数据存储 
sizeof 
单目运算符,用一个   以 字节形式给出了其操作数的存储大小 
技术分享
————————————————————————————
【了解】数组的概念和分类 
把具有 相同类型的若干 变量按 有序的形式组织起来的 集合
数组是构造类型,数组元素可以是基本数据类型,或构造类型 
数组的下标 
数组的维数 
2.按存储的内容分类,如下四类 
    数值数组: 存储数值 
    字符数组:存放字符‘a‘ 
    指针数组:存放指针(地址) 
    结构数组:存放结构体类型的数据 
3.按维度分类 
一维数组 
二维数组 
三维数组 
【掌握】一维数组定义及注意事项 
1.一维数组介绍    :存储基本数据类型int char float 
2.一维数组的定义: 
    数组的使用流程:定义数组---》给数组初始化---》使用数组 
    格式如下: 
    类型说明符 数组名【常量表达式(数组的 长度)】 
    数组类型 数组名【数组长度】 
    一维数组:数组的没个元素都不是一个数组 
    int a[3]//这个数组只能存放3个 int类型的数据,只能存放int类型的数据 
    注意事项 
    1)数组长度可以是一个常量,也可以是常量表达式:int a1[3+3] 
    3)数组名不能跟其他变量同名 
    4)数组长度不可以为变量(C标准要求) 
    5)数组的长度可以使用宏定义 
    6)定义数组的时候,还可以定义普通变量:  int x,y,a7[4] 
【掌握】一维数组的初始化:给数组的每一个元素赋一个初始值 
1.一维数组的初始化 
2.定义的同时初始化:  类型说明符 数组名【常量表达式】{值1,值2,。。。 }; 
                                  (1)定义的同时完全初始化 
                                        int a[3] = {1,2,3}; 
                                          int a2[] = {233,23,35};//数组的长度根据后面大括号中值的个数决定
                                    (2)定义的同时进行部分初始化 
                                            int  a1[3] = {1,2};//第三个元素是0 
                                            int a4[10]={ [3]=23,[8]=34};//[3]表示下标为3的元素赋初值为23 
                                            
3.先定义数组,然后再初始化 
            int a5[4];//先定义一个数组,通过下标法进行初始化 
                a5[0] = 12//给数组的第一个元素赋值为12 
                a5[1] = 34 
技术分享
//如果数组没有初始化,是有值的,值是随机的垃圾值 
//如果进行部分初始化,数组中其他元素都是0 
———————————————————————— 
一维数组的引用方式 
变量代表内存中的空间 
数组元素也是变量 
下标:数组元素的编号【0,n-1】 
数组的引用(访问):数组名【下标】 
数组的遍历 
特别强调:使用先定义后初始化的方式,如果部分元素被初始化了,系统不会对没有初始化的那部分元素赋值0操作 
【掌握】一维数组的存储方式 
存储方式: 
    1)计算机给数组分配一块 连续的存储空间 
    2)数组名代表数组的首地址,从首地址位置,依次存入数组的第1,2,3,n个元素 
    3)每个元素占用相同的字节数(取决于数组类型) 
    4)元素之间的地址是连续的 
内存的地址是十六进制的 0X开头 
【掌握】一维数组的地址                %p 
数组内部的元素是连续的 
先定义的数组分配在高地址 
数组名代表了数组的首地址==第一个元素的地址 
必须记住: 数组名是一个常量(固定不允许修改),存储的就是数组的首地址 
——————————————————————————————
【掌握】一维数组长度计算方法
数组长度计算方法,超级重要
#include <stdio.h> 
 
int main(int argc, const char * argv[]){ 
 
 
 int a1[]{1,2,4,5,6,3,3,3}; 
 
 int len = sizeof(a1)/sizeof(int); 
 printf("len = %d\n",len); 
 
 return 0; 
——————————————————————————————————————
【掌握】一维数组的越界问题
访问了不该访问的空间  
非常危险,程序会崩溃 
int main(int argc, const char * argv[]){ 
 
 
 char a[2]={‘h‘,‘i‘}; 
 
 
 printf("a[0] = %c\n",a[0]); 
 printf("a[1] = %c\n",a[1]); 
 a[2]= ‘s‘; 
 printf("a[2] = %c\n",a[2]); 
 return 0; 
———————————————————————————— 
数组元素作为函数参数 
把实参数组元素的值传递给形参, 值传递
【掌握】数组名作为函数参数 
1. 实参的类型和形参的类型不匹配--错误 
2.数组的长度可以不同 
3形参数组的长度可以不写 
4.数组名作为函数参数后,数组的长度信息丢失的问题。为啥固定为8?C 语言规定,不管什么类型的数据,数据的内存地址在内存中占8字节 
地址占8个字节 
————————————————————————————————————————
[掌握】冒泡排序,必考题目,必须掌握
一种排序算法,大数下沉,小数上浮 
步骤(大数下沉) 
1)比较相邻的元素

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。