java多维数组与变量存储类别

一、多维数组作为函数参数传递

1.1 二维数组

需要传递2个元素(int a[][4],int  rows)

例如:遍历二维数组void printArray2D(int a[][4],int rows)
{
int i,j;
for(i = 0;i < rows; ++i)
{
for(j = 0; j < 4; ++j)
{

printf(“%2d”,a[i][j]);

}
puts(“”);
}
}

int main(void)
{
int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

int rows = sizeof(a) / sizeof(a[0]);
printArray2D(a,rows);
return 0;
}

1.2 二维字符型数组

例如将三个数组进行比较

void sortStrings(char s[][100],int rows)
{
int i,j;
for(i = 0; i < rows; ++i)
{
for(j = i + 1; j < rows; ++j)
{
if(strcmp(s[i],s[j]) > 0)
{
char t[100];
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);

}

}
}

}
int main(void)
{
char s[][100] = {“Hello”,”World”,”China”};
int rows = sizeof(s) / sizeof(s[0]);
sortStrings(s,rows);
return 0;
}

二、变量存储类别

2.1 标识符的作用域与可见性

标识符要求:数字(非开头)、字符、下划线

作用域:局部作用域、全局作用域,可以嵌套,{}以外为全局变量,函数形参为局部,全局变量存放在静态区,其中内容未被初始化,其变量值为0。

可见性:标识符必须先定义后使用

(1)标识符必须先定义后使用;

(2)在没有包含关系的两个不同作用域中定义的同名标识符,互不影响;

(3)在同一作用域中不得定义同一标识符;

(4)在两个或者多个具有包含关系的作用域中定义的同名标识符,外层标识符在内层不可见;

2.2 变量的生存期

静态生存期:在程序运行中始终不销毁的变量(全局变量、由static修饰的变量);

动态生存期:在程序运行中会发生使用后销毁的变量。

2.3 函数存储类别

auto 函数:自动变量,完成在内存空间中自动创建与销毁,用法为 auto int i(一般省略);

static函数:有时希望函数变量在编译完成后不消失保留原值,即内存空间不释放,下次调用该函数变量时为已有值,此时需添加static 前缀称为静态局部变量;另一方面,对全局变量前添加static头衔,表示使该变量仅在本文件中使用,限制使用范围,用法为 static int ob;

register函数:表示将函数寄存到寄存器中(也不一定,不太重要的不会寄存),能提高读写效率,且不会被寻址,用法为 register int k;

extern函数:对于已有全局变量,添加extern前缀表示已定义该函数,此处只是声明,用法为: extern int maxOfTwoNumber(int a,int b);分号必不可少。

2.4关于.c .h文件的创立

.c文件用来存储对函数的定义与封装,main函数里存储对函数的调用目的,.h文件装声明(无需头文件),.c文件使用.h中函数时需添加对应头文件。头文件只放声明,不放定义。编译时应将所有使用的.c文件一起编译,头文件不参与编译。

指令:

:vsp 切左右屏;

:sp 切上下屏;

:set mouse=a 鼠标可点击全部界面;

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » java多维数组与变量存储类别

提供最优质的资源集合

立即查看 了解详情