#include<stdio.h>intmain(){int arr[10]={0};int* pArr = arr;for(int i =0; i <10; i++){
arr[i]= i +1;}for(int i =0; i <10; i++){//printf("%d ", arr[i]);printf("%d ",*arr + i);}return0;}
2,二维数组
#include<stdio.h>intmain(){int arr[5][5]={1,2,4,5,6,1,2,4,5,6,1,2,4,5,6,1,2,4,9,6,1,2,4,7,6};int* pArr =(int*)arr;for(int i =0; i <25; i++){printf("%d ",*(pArr+i));}printf("\n");printf("%d", arr[3][4]);//第四行第五列printf(" %d",*(pArr +3*5+4));//第四行第五列return0;}
3,C语言优化后数组
#include<stdio.h>#include<stdlib.h>#include<string.h>int* pArr;int len;//当前元素个数 sizeint maxLen;//当前容量capacity//初始化数组voidinitArr();//添加元素voidpush(int data);//遍历voidtravel();intmain(){initArr();for(int i =0; i <10; i++){push(i);}travel();return0;}voidinitArr(){
pArr =NULL;
len =0;}//vector容器/*
每次需要申请内存时,给1.5倍的内存空间
如果len的1.5倍小于len+1,那就给len+1;
*/voidpush(int data){//判断是否需要申请内存if(len >= maxLen)//需要{//计算需要申请多大的内存
maxLen = maxLen +(((maxLen >>1)>1)?(maxLen /2):1);//1,申请内存int* pNew =(int*)malloc(sizeof(int)* maxLen);if(NULL!= pArr){//之前有数据//原来的数据拷贝过来memcpy(pNew, pArr,sizeof(int)* len);//释放原来内存free(pArr);}//pArr指向新开内存
pArr = pNew;}//2,数据进来//3,len自增
pArr[len++]= data;}voidtravel(){printf("--:");for(int i =0; i < len; i++){printf("%d ", pArr[i]);}}