黑马程序员技术交流社区
标题: 第八天-随堂笔记 [打印本页]
作者: wy911011 时间: 2015-7-24 20:40
标题: 第八天-随堂笔记
本帖最后由 wy911011 于 2015-7-24 20:41 编辑
第八天
哈哈,已经学到第八天了,感觉好充实有木有~
short 2字节 %hd
int 4字节 %d,%i
long 8字节 %ld
long long 8字节 %lld(解决32位机器问题
unsigned %u
查看int类型占用的内存空间
int b=1;
//最小负数
int b1=b<<31;
//最大正数
int b2=(b<<31)-1;)
计算机默认是有符号的 signed
unsigned 表示一个无符号的数(正数的取值范围会扩大一倍)
unsigned short b=0-1;
一个字节的范围
0-127 用作常见的字符acsii码
数组:一组具有相同数据类型的数据的有序的结合
一维数组: 所有的元素都不是数组
数组定义的注意事项
1 数组的长度可以是一个常量,也可以是常量表达式
2 数组名命名规则:严格按照标示符命名规范
3 数组名不能和其他变量同名
4 数组名不可以是变量
5 数组的长度可以使用宏定义
6 定义数组时,还可以定义普通变量
一维数组初始化
//定义的同时初始化
//全部初始化
int a1[3]={1,2,3};
int a2[]={4,5,6};
//部分初始化
int a3[3]={a3[0]=7,a3[1]=8};
int a4[3]={9,10};
//先定义后初始化
int a5[3];
a5[0]=11;
a5[1]=12;
a5[3]=13;
对于数组来书,一旦有元素被初始化,其他元素都被赋值0
数组存储方式
计算机会给数组分配一块连续的存储空间
数组名代表数组的首地址,从首地址位置,依次存入数组的第一个、第二个元素
每个元素占用相同的字节数、并且元素之间地址是连续的
数组名是一个常量,存储数组的首地址
数组的越界会出现未知的错误
数组用作函数参数有两种形式
1)一种是把数组元素作为实参使用
例:void printfNum(int n){
if (n>0) {
printf("%d",n);
}else{
printf("0");
}
}
int main(int argc, const char * argv[]) {
int a[5]={1,2,-3,-1,5};
for (int i=0; i<5; i++) {
printfNum(a);
}
}
形参和实参之间是‘值传递‘
2)一种是把数组名作为函数的形参和实参使用
形参和实参之间是‘地址传递’
例:float avg(float score[5]){
float sum=0.0f;
for (int i=0; i<5; i++) {
sum+=score;
}
return sum/5;
}
int main(int argc, const char * argv[]) {
float f1[5]={66.66,77.77,88,88,99.99};
float avg1=avg(f1);
printf("%.2f",avg1);
return 0;
}
数组名作为函数的参数的注意点
1)如果类型不一致,会导致错误
2)形参的数组长度和实参数组的长度可以不一致
3)形参数组的长度可以不写
冒泡代码实现:
#import <Foundation/Foundation.h>
void maopao(int arr[],int len){
int temp;
for (int i=0; i<10; i++) {
for (int j=0; j<len-1-i; j++) {
if (arr[j]>arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
int main(int argc, const char * argv[]) {
int a[10]={1,3,5,6,8,22,33,45,77,198};
int i;
maopao(a, 10);
for (i=0; i<9; i++) {
printf("%d\t",a);
}
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |