一维数组

C语言 08-数组

冷暖自知 提交于 2020-01-30 04:32:16
本文目录 地址 一、一维数组 二、二维数组   说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略。 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 地址   1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。   2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 一、一维数组 1.一维数组的定义 * 定义的形式为:类型 数组名[元素个数] int a[5]

【C语言】08-数组

∥☆過路亽.° 提交于 2020-01-30 04:31:01
本文目录 地址 一、一维数组 二、二维数组 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 为了让大家更好地学习和理解数组,我们先来认识一下内存中的"地址"。 回到顶部 地址 1.计算机中的内存是以字节为单位的存储空间。内存的每一个字节都有一个唯一的编号,这个编号就称为地址。凡存放在内存中的程序和数据都有一个地址,也就是说,一个函数也有自己的内存地址。 2.当定义一个变量时,系统就分配一个带有唯一地址的存储单元来存储这个变量。比如: char a = 'A'; // A的ASCII值为65 int b = 66; 在16bit编译器环境下,系统为a、b分别分配1个字节、2个字节的存储单元。变量存储单元的第一个字节的地址就是该变量的地址。 可以看出,变量a的地址是ffc3;变量b的地址是ffc1。内存中存储的都是2进制数据。 3.在调试过程中,我们采取打印的方式查看变量的地址: int c = 10; // 以16进制形式输出地址 printf("16进制:%x\n", &c); // 以10进制形式输出地址 printf("10进制:%d", &c); 输出结果: 回到顶部 一、一维数组 1.一维数组的定义 * 定义的形式为: 类型 数组名[元素个数] int

Java基础入门(六)之数组

被刻印的时光 ゝ 提交于 2020-01-30 04:17:40
一、一维数组 1. 定义:数组是存储同一种数据类型 多个元素的集合 也可以看成是一个容器数组既可以存储基本数据类型 也可以存储引用数据类型数组 它本身就是一个类型 是一个引用数据类型。 2. 作用:存储同一类型的多个数据,可以为元素编号 3. 格式:数据类型[] 数组名 = new 数据类型[数组长度] 4. 内存:堆内存和栈内存 栈内存 存储的是基本数据类型的变量数据 / 对象的引用 / 方法 堆内存 存储new出来的实体 数组/对象new出来的东西 叫做实体 每一个实体 都有内存地址值,实体中变量都有默认初始化值,不同数据类型的初始化值不同,引用数据类型初始化为null 5. 初始化方式:静态初始化和动态初始化 动态初始化:为数组开辟连续的内存空间 并且为每个数组的元素赋默认值 格式: 数据类型 [] 数组名 = new 数据类型 [ 数组长度 ] 在创建的时候 就指定了数组的长度由系统给出默认初始化值 静态初始化:在创建时 给出存储内容 系统自动分配长度 格式: 数据类型 [] 数组名 = new 数据类型 []{ 元素 1, 元素 2, 元素 3.... 元素 n} 元素之间以逗号进行分割 简写格式: 数据类型 [] 数组名 = { 元素 1, 元素 2, 元素 3.... 元素 n} 注意:静态初始化的简写格式 不能先声明 后 指向只能在一行书写 6.

一维数组应用之输出前100个素数

旧巷老猫 提交于 2020-01-24 17:24:22
编写程序,输出前100个素数   记录网课上学到的一个程序,利用数组输出前100个素数。 # include <stdio.h> int isPrime ( int x , int KnownPrimes [ ] , int numberofKnownPrimes ) ; int main ( ) { const int number = 100 ; int prime [ 100 ] = { 2 } ; int count = 1 ; int i = 3 ; /*以下代码用于调试时输出一个表头(与下面的调试代码配合运行),调试时可将number值设为10,观察前十个素数的输出过程即可; { int m; printf("数组元素下标:\t\t"); for (m=0; m<number; m++) { printf("%d\t", m); } printf("\n"); } */ while ( count < number ) { if ( isPrime ( i , prime , count ) ) { prime [ count ++ ] = i ; //如果 isPrime(i, prime, count)=1,则i是素数,将其放入数组count指向的位置,并将count值+1 } /*以下代码用于调试时观察各变量输出情况 { printf("i=%d \tcount=

NOI / 1.6编程基础之一维数组--11:大整数减法

别等时光非礼了梦想. 提交于 2020-01-12 06:16:22
11:大整数减法 原地址 总时间限制: 1000ms 内存限制: 65536kB 描述 求两个大的正整数相减的差。 输入 共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。 输出 一行,即所求的差。 样例输入 9999999999999999999999999999999999999 9999999999999 样例输出 9999999999999999999999990000000000000 源码 # include <iostream> # include <cstring> # include <string> # include <algorithm> # include <cmath> # include <cstdio> # include <math.h> # include <cstdlib> # include <iomanip> using namespace std ; //大整数减法,跟上一道大整数加法异曲同工 int main ( ) { string str ; int a [ 210 ] , b [ 210 ] , result [ 210 ] = { 0 } , deposit [ 210 ] = { 0 } ; int a_len = 0 , b_len = 0 , len , i ; cin

C++中动态申请二维数组并释放方法

蓝咒 提交于 2020-01-11 02:57:02
C/C++中动态开辟一维、二维数组是非常常用的,以前没记住,做题时怎么也想不起来,现在好好整理一下。 C++中有三种方法来动态申请多维数组 (1)C中的malloc/free (2)C++中的new/delete (3)STL容器中的vector 下面逐一介绍: 第一种:malloc/free 1.动态开辟一维数组 //动态开辟一维数组 void dynamicCreate1Array() { int m; int i; int *p; printf("请输入开辟的数组长度:"); scanf("%d",&m); p = (int*)malloc(sizeof(int)*m);//动态开辟 printf("请输入数据:"); for(i = 0; i < m ; i++) scanf("%d",&p[i]); printf("输出数据:\n"); for(i = 0; i < m; i++) printf("%d ",p[i]); free(p); } 运行结果: 2.动态开辟二维数组 //动态开辟二维数组 void dynamicCreate2Array() { int m,n; int i,j; int **p; printf("请输入数组行和列:"); scanf("%d%d",&m,&n); p = (int**)malloc(sizeof(int*)*m); //开辟行

# numpy 数据分析基础

跟風遠走 提交于 2020-01-11 00:27:49
numpy 数据分析基础 创建数组 方法 说明 np.array( x ) 将输入数据转化为一个ndarray| np.array( x, dtype ) 将输入数据转化为一个类型为type的ndarray| np.asarray( array ) 将输入数据转化为一个新的(copy) np.ones( N ) 生成一个N长度的一维全一ndarray np.ones( N, dtype) 生成一个N长度类型是dtype的一维全一ndarray np.ones_like( ndarray ) 生成一个形状与参数相同的全一ndarray np.zeros( N) 生成一个N长度的一维全零ndarray np.zeros( N, dtype) 生成一个N长度类型位dtype的一维全零ndarray np.zeros_like(ndarray) 类似np.ones_like( ndarray ) np.empty( N ) 生成一个N长度的未初始化一维ndarray np.empty( N, dtype) 生成一个N长度类型是dtype的未初始化一维ndarray np.empty(ndarray) 类似np.ones_like( ndarray ) np.eye( N ) 创建一个N * N的单位矩阵(对角线为1,其余为0) np.identity( N ) np.arange( num

数组、二维数组定义、应用、遍历

断了今生、忘了曾经 提交于 2020-01-10 23:55:53
数组定义 数据类型[] 数组名 = new 数据类型[元素个数或数组长度]; int [ ] x = new int [100] int [ ] x; //声明一个int [ ]类型的变量 x = new int [100]; //创建长度为100的数组 定义数组访问数组元素 1 public class ArrayDemo01 { 2 public static void main(String[] args) { 3 int[] arr; // 声明变量 4 arr = new int[3]; // 创建数组对象 5 System.out.println("arr[0]=" + arr[0]); // 访问数组中的第一个元素 6 System.out.println("arr[1]=" + arr[1]); // 访问数组中的第二个元素 7 System.out.println("arr[2]=" + arr[2]); // 访问数组中的第三个元素 8 System.out.println("数组的长度是:" + arr.length); // 打印数组长度 9 } 10 } 结果: 为数组元素赋值 1 public class ArrayDemo02 { 2 public static void main(String[] args) { 3 int[] arr = new

树状数组(一维)

牧云@^-^@ 提交于 2020-01-09 04:17:26
变形一下 现在定义每一列的顶端结点C[]数组 下面说代码 int lowbit(int t) { return t&(-t); } //-t 代表t的负数 计算机中负数使用对应的正数的补码来表示 //例如 : // t=6(0110) 此时 k=1 //-t=-6=(1001+1)=(1010) // t&(-t)=(0010)=2=2^1 C[i]=A[i-2^k+1]+A[i-2^k+2]+......A[i]; C[i]=A[i-lowbit(i)+1]+A[i-lowbit(i)+2]+......A[i]; 区间查询 ok 下面利用C[i]数组,求A数组中前i项的和 举个例子 i=7; sum[7]=A[1]+A[2]+A[3]+A[4]+A[5]+A[6]+A[7] ; 前i项和 C[4]=A[1]+A[2]+A[3]+A[4]; C[6]=A[5]+A[6]; C[7]=A[7]; 可以推出: sum[7]=C[4]+C[6]+C[7]; 序号写为二进制: sum[(111)]=C[(100)]+C[(110)]+C[(111)]; 再举个例子 i=5 sum[5]=A[1]+A[2]+A[3]+A[4]+A[5] ; 前i项和 C[4]=A[1]+A[2]+A[3]+A[4]; C[5]=A[5]; 可以推出: sum[5]=C[4]+C[5]; 序号写为二进制:

Java中二维数组

南楼画角 提交于 2020-01-06 23:23:30
二维数组: 概念: 二维数组的元素就是一个一维数组,以及一维数组对用的长度 int x ,y ; int[] x , y ;x是一个一维数组,y是一个一维数组 int[] x , y[] ;x是一个一维数组,y是一个二维数组 int[][] x ; x是一个二维数组 定义格式1: 动态初始化 : 数据类型[][] 数组名称 = new 数据类型[m][n] ; (推荐第一种) 数据类型 数组名称[][] = new 数据类型[m][n] ; 举例: int[][] arr = new int[3][2] ; 等号左边: int:表示一个int类型 [][]:表示定义二维数组 arr :数组名称 等号右边: new :在堆内存中创建对象 int :创建int类型数组 [3] :表示当前二维数组中有3个一维数组 [2] :这三个一维数组中每一个都有2个元素 class Array2Demo { public static void main ( String [ ] args ) { //定义一个二维数组,并且动态初始化 int [ ] [ ] arr = new int [ 3 ] [ 2 ] ; System . out . println ( arr ) ; //[[I@十六进制数据 [[I@6d06d69c //存在3个一维数组 系统默认初始化:null //第一个一维数组