数组一些相关运算

:一维数组

定义:数组是一组相同类型元素的集合

数组的创建方式:type_t  arr_name  [ const_n]

type_t是指数组的元素类型

const_n是一个常量表达式,用来指定数组的大小

例如:int arr[10];

注意:数组的创建,[ ]中要一个常量才可以,不能使用变量;

数组的初始化:数组的初始化是指在创建数组的时候给数组的内容一些合理的初始值

例如:

int arr1[10]={1,2,3};

int arr2[ ]={'a','b','c'};

int arr3[ ]="abcd";

注意:1,数组是使用下标来访问的,下标是从0开始的;

         2,数组的大小可以通过计算得到;

          3,数组在内存重视连续储存的。

例如:int arr[10];

          int sz=sizeof(arr0/sizeof(arr[0]);/

二:二维数组

 (1)  二维数组的使用也是通过下标的方式;

 (2)二维数组在内存中也是连续储存的。

关于数组我们必须学会有关数组的一些运算。

例如:

一维数组:

    int a[] = {1,2,3,4};

{

     printf("%d\n",sizeof(a));          16
     printf("%d\n",sizeof(a+0));      4
     printf("%d\n",sizeof(*a));         4
     //*a == *(a+0) == a[0];
     //arr[i] ==> *(arr+i)
     printf("%d\n",sizeof(a+1));      4
     printf("%d\n",sizeof(a[1]));      4
     printf("%d\n",sizeof(&a));        4
     printf("%d\n",sizeof(*&a));    16
     printf("%d\n",sizeof(&a+1));   4
     printf("%d\n",sizeof(&a[0]));    4

     printf("%d\n",sizeof(&a[0]+1));  4

字符数组:

    char arr[] = {'a','b','c','d','e','f'};
    printf("%d\n", strlen(arr));            随机值
    printf("%d\n", strlen(arr+0));       随机值
    printf("%d\n", strlen(*arr));       错误
    printf("%d\n", strlen(arr[1]));      错误
    printf("%d\n", strlen(&arr));        随机值
    printf("%d\n", strlen(&arr+1));     随机值
    printf("%d\n", strlen(&arr[0]+1)); 随机值
     printf("%d\n", sizeof(arr));          6
     printf("%d\n", sizeof(arr+0));     4
     printf("%d\n", sizeof(*arr));        1
     printf("%d\n", sizeof(arr[1]));     1
     printf("%d\n", sizeof(&arr));      4
     printf("%d\n", sizeof(&arr+1));  4
     printf("%d\n", sizeof(&arr[0]+1)); 4
     char arr[] = "abcdef";    7
     printf("%d\n", strlen(arr));    6
     printf("%d\n", strlen(arr+0)); 6
     printf("%d\n", strlen(*arr));   错误
     printf("%d\n", strlen(arr[1]));   错误
     printf("%d\n", strlen(&arr));      6
     printf("%d\n", strlen(&arr+1));  随机值
     printf("%d\n", strlen(&arr[0]+1));  5


     printf("%d\n", sizeof(arr));//7
     printf("%d\n", sizeof(arr+0));//4
     printf("%d\n", sizeof(*arr));//1
     printf("%d\n", sizeof(arr[1]));//1
     printf("%d\n", sizeof(&arr));//4
     printf("%d\n", sizeof(&arr+1));//4
    printf("%d\n", sizeof(&arr[0]+1));
    char *p = "abcdef";
    printf("%d\n", strlen(p));      6
    printf("%d\n", strlen(p+1));   5
    printf("%d\n", strlen(*p));   错误
    printf("%d\n", strlen(p[0]));错误
    printf("%d\n", strlen(&p));   随机值
    printf("%d\n", strlen(&p+1)); 随机值

    printf("%d\n", strlen(&p[0]+1));  5

二维数组:

    int arr[3][4];
    *(*(arr+1)+0)
    *(*(arr)) = *(*(arr+0)+0)
        *arr = *(arr+0)
    printf("%d\n", sizeof(p));    4
    printf("%d\n", sizeof(p+1));   4
    printf("%d\n", sizeof(*p));   1
    printf("%d\n", sizeof(p[0]));   1
    printf("%d\n", sizeof(&p));    4
    printf("%d\n", sizeof(&p+1));  4
    printf("%d\n", sizeof(&p[0]+1));  4
    
    int a[3][4] = {0};
    int *p = a+1;
    short s = 1;
    int n = 10;
    printf("%d\n", sizeof(s=n+1));   2;
    printf("%d\n",sizeof(a));    48
    printf("%d\n",sizeof(a[0][0]));  4
    printf("%d\n",sizeof(a[0]));     16
    printf("%d\n",sizeof(a[0]+1));  4
    printf("%d\n",sizeof(a+1));      4
    printf("%d\n",sizeof(&a[0]+1));  4
    printf("%d\n",sizeof(*a));   16
    return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您总结一下Numpy数组与矩阵运算实验的内容。 Numpy是Python中用于科学计算的一个重要的库,它提供了高性能的多维数组对象以及各种计算和操作这些数组的函数。Numpy数组与矩阵运算实验主要包括以下内容: 1. Numpy数组的创建与索引:可以使用Numpy提供的array()函数创建一维或多维数组,并且可以使用索引和切片来访问数组中的元素。 2. Numpy数组的基本运算:Numpy提供了基本的数组运算,包括加、减、乘、除等,可以对数组进行逐元素的运算。 3. Numpy数组的聚合运算:Numpy提供了一些常用的聚合函数,比如sum()、min()、max()、mean()等,可以对数组中的元素进行聚合运算。 4. Numpy数组的逻辑运算:Numpy提供了逻辑运算符,可用于数组中元素的逻辑判断,如and、or等。 5. 矩阵的创建与运算:Numpy提供了矩阵对象,可使用matrix()函数创建矩阵,矩阵之间的运算包括加、减、乘、转置等。 6. 广播:Numpy提供了广播功能,可以使得不同形状的数组运算时具有相同的形状。 通过实验练习,可以掌握Numpy数组与矩阵运算的基本操作,如数组创建、索引、运算、聚合、逻辑运算以及矩阵创建、运算、转置等。同时,实验也会涉及到一些高级的Numpy应用,比如随机数生成、线性代数运算数组的拼接、切分和重塑等,这些内容需要结合实际应用场景进行练习。 总的来说,Numpy数组与矩阵运算实验是Python科学计算中非常重要的部分,需要反复练习和实践,才能掌握这些知识点并灵活运用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值