c 一,二,三维数组的定义和赋值

2023-12-13 17:02:11

1. 定义数组必须指定数组的大小,也就是用多少存储空间来存储此数组

2.定义数组必须用数组的标准格式定义:数组名+下标的形式

3.只有字符串可以用指针来定义

4.可以把c 中一切数和struct? 理解为char 数组

比如int? 就是4字节的char数组


#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/videodev2.h>  //v4l2 头文件
#include <string.h>
#include <sys/mman.h>
#include <linux/fb.h>

int main(void){
	
//	char *q={1,2,3};      这种用指针定义数组是错误的,指针只能定义字符串数组
	char *q="1234";       //只有字符串可以用指针定义
	
     
	 char i1[10];
	 i1[2]=1;
	 *(i1+3)=8;     //1+3 列
	
 // 	printf("%d\n", i1[3]);
	
	char i2[5][3]={};

	
	i2[0][0]=1;
	i2[1][1]=2;
	
	*((*i2)+2)=3;             //表示1排2+1列
	*(*(i2+4)+1)=4;           //表示1+4排1+1列
	
	
	for(int a=0;a<5;a++){
		for(int b=0;b<3;b++){
	//		printf("%d ",i2[a][b]);
		}
	//	printf("\n");
	}
	
	
	char i3[2][5][3]={};       //可以把i3 理解为[2]的指针
	
	i3[0][1][2]=1;             
	
	*(*(*(i3+1)+2)+2)=9;       //指针赋值: i3+1 指的是[2],中间的*+2=[5],外围的*+2=[3]
	
	char o[3]={1,2,3};
	memcpy(&(i3[1][3][0]),o,3);  //数组赋值
	
	
	for(int a=0;a<2;a++){
		for(int b=0;b<5;b++){
			for(int c=0;c<3;c++){
			 printf("%d ",i3[a][b][c]);
			}
			printf("\n");
		}
		printf("\n");
	}
	

   
	
	return 0;
}

文章来源:https://blog.csdn.net/m0_59802969/article/details/134913917
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。