C 进阶数组

#include <malloc.h>
#include <string.h>
#include <ctype.h>
#include "stdio.h"

/**
 *
 * 数组 :
 * 元素类型角度:数组是相同类型的变量有序集合,
 * 内存角度:;联系一大片内存空间
 * 数组名数组首元素的起始地址,但并不是数组的起始地址
 *  c是数组首元素的地址c+1  步长4个字节
    &c 是整个数组的地址&+1  步长200个字节

 * @return
 */
int main0() {
    int a[]={1,2};
    int b[100]={1,4};
    int c[200]={0};//编译时确定 所有值为零
    printf("c[0]:%d \n",c[0]);
    c[0]=333;
    memset(c,0,sizeof(c));//显示的重置内存块

    printf("c[0]:%d",c[0]);





}
/**
 * 数组也是一种数据类型
 * 怎么样 表达int a[10] 这种数据类型
 * @return
 */
int main1(){
    typedef int  (MyArrayType)[5];

    MyArrayType myArray; //用类型定义变量
    for(int i=0;i<5;i++){
        myArray[i]=i;
    }

    for(int i=0;i<5;i++){
       printf("%d \n",myArray[i]);
    }


}

/**
 *
 * 数组指针类型
 *
 * 定义指针变量的第一种方法
 *
 *
 */
int main2(){


    char *MyArray[]={"111","3333","aaaa"};//指针数组
    //数组指针 用一个指针来指向一个数组
    typedef int  (MyArrayType)[5];

    MyArrayType myArray; //用类型定义变量


    MyArrayType *pArray;//定义一个指针变量 这个指针变量指向一个数组

    int myArray2[5]; //相当于一级指针
    for(int i=0;i<5;i++){
        myArray2[i]=i;

    }
    pArray=&myArray2; //相当于二级指针

    for(int i=0;i<5;i++){
        printf("myArray2[%d]:%d \n",i,(*pArray)[i]);
    }



}

/**'
 * 定义指针变量的第二种方法
 * @return
 */
int main3() {
    //定义一个数组指针类型
    typedef int (*PArrayType)[5];

    PArrayType pArray;

    int myArray2[5]; //相当于一级指针
    for (int i = 0; i < 5; i++) {
        myArray2[i] = i;

    }
    pArray = &myArray2; //相当于二级指针

    for (int i = 0; i < 5; i++) {
        printf("myArray2[%d]:%d \n", i, (*pArray)[i]);
    }
}
/**'
 * 定义指针变量的第三种方法
 * 前两种定义类型来定义变量 比较麻烦 下面来直接定义
 * @return
 */
int main() {
    //定义一个数组指针类型
    int (*pArray)[5];

    int myArray2[5]; //相当于一级指针
    for (int i = 0; i < 5; i++) {
        myArray2[i] = i;

    }
    pArray = &myArray2; //相当于二级指针

    for (int i = 0; i < 5; i++) {
        printf("myArray2[%d]:%d \n", i, (*pArray)[i]);
    }
}

C 进阶学习笔记汇总

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值