博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言-06复杂数据类型-01数组
阅读量:4655 次
发布时间:2019-06-09

本文共 2747 字,大约阅读时间需要 9 分钟。

01-数组

#include 
int main(){ // 使用注意 // 都是正确写法 //int ages[5] = {10 , 11, 12, 67, 56}; //int ages[5] = {10, 11}; //int ages[5] = {[3] = 10, [4] = 11}; //int ages[] = {10, 11, 14}; // 错误写法 // int ages[]; // 错误写法 /* 只能在定义数组的同时进行初始化 int ages[5]; ages = {10, 11, 12, 14}; //因为数组名存储的是一个指针 */ // 正确写法 // int ages['A'-50] = {10, 11, 12, 14, 16}; // 65-50 --》15 //int size = sizeof(ages); 15*4-----》60 //printf("%d\n", size); // 正确写法 /* int count = 5; int ages[count]; ages[0] = 10; ages[1] = 11; ages[2] = 18; */ //printf(); // 错误写法 // 如果想再定义数组的同时进行初始化,数组元素个数必须是常量,或者不写 //int ages[count] = {10, 11, 12}; int ages[] = {
10, 11, 12, 78}; // 计算数组元素的个数 int count = sizeof(ages)/sizeof(int); for (int i = 0; i

 数组元素在内存中的存放顺序与变量不同   第[0]个元素是放到低位的,依次往高位

在调用函数时传入参数是数组的时候,实际是将数组的地址传过去,是地址传递(非值传递),所以在函数中改变数据元素值的时候,数组元素的值是会改变的.

#include 
// 数组作为函数参数,可以省略元素个数// 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组void change(int array[]){ //printf("array==%p\n", array); array[0] = 100;}void change2(int n){ n = 100;}int main(){ int ages[6] = {
10, 11, 10, 11, 10, 11}; //printf("ages==%p\n", ages); change(ages); //change2(ages[0]); printf("%d\n", ages[0]); return 0;}

 数组与函数的练习

#include 
int maxOfArray(int array[], int length){ // 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节 //int size = sizeof(array); //printf("array=%d\n", size); //sizeof(array); // 1.定义一个变量存储最大值(默认就是首元素) int max = array[0]; // 2.遍历所有元素,找出最大值 for (int i = 1; i
max) { max = array[i]; } } return max;}int main(){ int ages[] = {
11, 90, 67, 150, 78, 60, 70, 89, 100}; int ages2[] = {
11, 90, 67, 150, 78, 60, 70, 89, 100}; //int size = sizeof(ages); //printf("ages=%d\n", size); int max = maxOfArray(ages, sizeof(ages)/sizeof(int)); printf("%d\n", max); return 0;}

 二维数组

int main(){    /*    int ages[5] = {10, 11, 90, 89, 70};        int ages2[3][5]= {        {10, 11, 90, 89, 70},                {10, 11, 90, 89, 70},                {10, 11, 90, 89, 70}    };*/    char cs[2][3];        /*     1 浅蓝色     2 深蓝色     3 黄色     4 红色     -1 没有     */        int cubes[5][5] = {        {
1, -1, -1, -1, -1}, //俄罗斯方块 {
1, 1, -1, 2, -1}, {
4, 1, 2, 2, 2}, {
4, 3, 3, 3, 3}, {
4, 3, 3, 3, 3} }; /* 1 白色 2 黑色 -1 没有 */ int wuzi[6][6] = { //五子棋 {}; }; return 0;}

 

转载于:https://www.cnblogs.com/iedo/p/5038491.html

你可能感兴趣的文章
asp.net Mvc 访问静态页面
查看>>
数据结构和算法 — 平衡二叉树的实现
查看>>
帝国CMS判断会员是否登录及登录后才能看到内容的方法
查看>>
使用三大框架实现文件的上传及下载
查看>>
理解 HTTP2.0
查看>>
十一、mysql输入安全
查看>>
Java中的异常处理(二)
查看>>
汇编语言
查看>>
session内置对象
查看>>
移动网络优化
查看>>
iis打开.apk等格式文件
查看>>
jquery 画板折叠
查看>>
使用 TOP 限制更新的数据
查看>>
LiveScript 函数
查看>>
「Sqlserver」数据分析师有理由爱Sqlserver之十-Sqlserver自动化篇
查看>>
怎样将pdf分割成多个文件
查看>>
聊聊 CDN 缓存与浏览器缓存
查看>>
针对数据库开发人员的性能调优小提示
查看>>
宾得常用镜头群[转自东河寒梅]
查看>>
重点错误记录
查看>>