01-数组

#include <stdio.h>

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[] = {, , , }; // 计算数组元素的个数
int count = sizeof(ages)/sizeof(int); for (int i = ; i<count; i++)
{
printf("ages[%d]=%d\n", i, ages[i]);
} return ;
} // 数组的基本使用
void arrayUse()
{
// 数组的定义格式: 类型 数组名[元素个数];
int ages[] = {, , , , };
// 19 19 28 27 26]
ages[] = ; /*
ages[0] = 19;
ages[1] = 19;
ages[2] = 28;
ages[3] = 27;
ages[4] = 26;
*/ /*
遍历:按顺序查看数组的每一个元素
*/
for (int i = ; i<; i++)
{
printf("ages[%d]=%d\n", i, ages[i]);
}
}

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

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

#include <stdio.h>

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

数组与函数的练习

#include <stdio.h>

int maxOfArray(int array[], int length)
{
// 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节 //int size = sizeof(array);
//printf("array=%d\n", size); //sizeof(array); // 1.定义一个变量存储最大值(默认就是首元素)
int max = array[]; // 2.遍历所有元素,找出最大值
for (int i = ; i<length; i++) //注意,为了提高效率 i的值是从1开始遍历的
{
// 如果当前元素大于max,就用当前元素覆盖max
if (array[i] > max)
{
max = array[i];
}
} return max;
} int main()
{
int ages[] = {, , , , , , , , }; int ages2[] = {, , , , , , , , }; //int size = sizeof(ages); //printf("ages=%d\n", size);
int max = maxOfArray(ages, sizeof(ages)/sizeof(int)); printf("%d\n", max);
return ;
}

二维数组

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[][]; /*
1 浅蓝色
2 深蓝色
3 黄色
4 红色
-1 没有
*/ int cubes[][] = {
{, -, -, -, -}, //俄罗斯方块
{, , -, , -},
{, , , , },
{, , , , },
{, , , , }
}; /*
1 白色
2 黑色
-1 没有
*/
int wuzi[][] = { //五子棋
{};
}; return ;
}

C语言-06复杂数据类型-01数组的更多相关文章

  1. [日常] Go语言圣经--复合数据类型,数组习题

    go语言圣经-复合数据类型 1.以不同的方式组合基本类型可以构造出来的复合数据类型 2.四种类型——数组.slice.map和结构体 3.数组是由同构的元素组成——每个数组元素都是完全相同的类型——结 ...

  2. C语言-06复杂数据类型-04 结构体

    结构体的说明(构造类型) 数组:只能由多个相同类型的数据构成 结构体:可以由多个不同类型的数据构成 ,结构体的类型是不存在的,自己定义 int main() { // 1.定义结构体类型 定义类型的时 ...

  3. C语言-06复杂数据类型-03指针

    指针变量的定义 变量类型 *变量名; #include <stdio.h> int main() { // 指针就一个作用:能够根据一个地址值,访问对应的存储空间 // 指针变量p前面的i ...

  4. C语言-06复杂数据类型-02字符串

    #include <stdio.h> int main() { //char name[] = {'i', 't', 'c', 'H', 's', 't', '\0'}; char nam ...

  5. C语言进阶——基本数据类型01

    刚开始人们还没有数据类型这个概念,但是人们经常要使用到固定内存大小的内存,这个时候那时的程序员就要记录一段信息在内存中的起始位置和终止位置,很不方便,演变到后来就出现了数据类型这个概念 什莫是数据类型 ...

  6. 054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述

    054 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 01 数组概述 本文知识点:数组概述 为什么要学习数组? 实际问题: 比如我们要对学生的成绩进行排序,一个班级 ...

  7. Go 语言的基本数据类型

    Go 语言的基本数据类型 0)变量声明 var 变量名字 类型 = 表达式 例: 其中“类型”或“= 表达式”两个部分可以省略其中的一个. 1)根据初始化表达式来推导类型信息 2)默认值初始化为0. ...

  8. 深入理解C语言中的指针与数组之指针篇

    转载于http://blog.csdn.net/hinyunsin/article/details/6662851     前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...

  9. 深入理解C语言中的指针与数组之指针篇(转载)

    前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情 ...

随机推荐

  1. [RxJS] Drag and Drop example

    Improving our mouse drag event Our mouse drag event is a little too simple. Notice that when we drag ...

  2. Bash String Manipulation Examples – Length, Substring, Find and Replace--reference

    In bash shell, when you use a dollar sign followed by a variable name, shell expands the variable wi ...

  3. [整理]:oracle spool 用法

    本文来自iDB Stock:http://www.idb-stock.net/idb/2011/06/01/153.html 1.spool的作用是什么? spool的作用可以用一句话来描述:在sql ...

  4. 一个不错的flash 模板

    听到好听的背景音乐,而且效果也挺不错的,忽然感觉flash好强大呀 1.模板浏览地址:http://www.cssmoban.com/cssthemes/5229.shtml 2.模板演示地址:htt ...

  5. 玩转html5<canvas>画图

    导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制 ...

  6. jqery筛选

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. UML 行为图之用例图 总结

    学习UML图形 推荐阅读<UML参考手册>第2版. http://www.umlchina.com/  推荐微软的开发软件设计模型 http://msdn.microsoft.com/zh ...

  8. win向linux传文件

    使用pscp.exe即可. 下载pscp.exe(http://pan.baidu.com/s/1jG6zmx4) 复制到windows/system32目录下即可. 然后可在cmd命令行下使用psc ...

  9. HTTP协议认识

    一.HTTP协议概念 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议 HTTP是一个应用层协议,由请求和响应 ...

  10. iOS-开发日志-UITextView介绍

    UITextView 属性 1.     text: 设置textView中文本 _textView.text = @"Now is the time for all good develo ...