数组指针
数组 指针
2023-09-27 14:25:49 时间
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void test()
{
//int//0维数组 一级指针
//int[10]//一维数组, 二级指针
//int[10][20]//二维数组, 三级指针
int a[3][4];
// a 是一个 指针, 指向 此二维数组首元素(int[4])的地址, int (*)[4] ==>二级指针 指向一维数组
// &a 也是一个指针, 指向 此二维数组(int[3][4])的地址, int(*p)[3][4] ---> 三级指针 指向一个二维数组
//一个数组指针, 如果是几级指针, 就是 指向比他低一个维度的数组。
}
int main(void)
{
//定义一个指针数组
//char *pointer_array[4] = { NULL, NULL, NULL, NULL };//在栈上
char *pointer_array[4] = { 0};
int i = 0;
for (i = 0; i < 4; i++) {
pointer_array[i] = malloc(100);
}
//定义一个数组指针
//方法一
//直接定义一个数组类型
typedef int(ARRAY_CHAR_4)[4];
ARRAY_CHAR_4 array = { 0 }; //(int[4]) array 是数组首元素的地址
ARRAY_CHAR_4 *p = NULL; //数组的地址 (int[4]) * p = NULL;
p = &array; // array int* &array --> (int[4])*
for (i = 0; i < 4; i++) {
(*p)[i] = i; // array[i] = i;
// char[4] *(p + i) === p[i]
}
for (i = 0; i < 4; i++) {
printf("%d\n", array[i]);
}
int size = 0;
size = sizeof(ARRAY_CHAR_4);
printf("ARRAY_CHAR_4 = %d\n ", size); // 16
/*
int *p = NULL;
typedef int* POINT;
POINT p;
*/
//方法二
typedef int(*ARRAY_CHAR_4_POINTER)[4]; //p ----> int[10]
typedef int(*ARRAY_CHAR_10_POINTER)[10]; //int[10]
ARRAY_CHAR_4_POINTER array_pointer = &array;
size = sizeof(ARRAY_CHAR_4_POINTER);
printf("ARRAY_CHAR_4_POINTER = %d\n ", size); //4
for (i = 0; i < 4; i++) {
(*array_pointer)[i] = 10 - i;
}
printf("\n");
for (i = 0; i < 4; i++) {
printf("%d\n", array[i]);
}
//方法三
int(*array_p)[4] = NULL; //直接定义一个数组指针
array_p = &array;
for (i = 0; i < 4; i++) {
(*array_p)[i] = 20 - i;
}
printf("\n");
for (i = 0; i < 4; i++) {
printf("%d\n", array[i]);
}
return 0;
}
int array[3][4] = {0};
printf("array:%d,\t array[0]:%d,\t array[1]:%d\n",
sizeof(array),sizeof(array[0]),sizeof(array[1]));
return 0;
相关文章
- Go语言数组
- Numpy基本操作——数组的切片索引操作
- C语言|指针进阶(1):字符指针、指针数组、数组指针
- C语言核心之数组和指针详解
- PHP 判断数组是否为空的5大方法
- 用指向数组的指针作函数参数
- 【JS】JS数组添加元素的三种方法
- c++数组指针bug
- 【C语言】飞机大战游戏还原,源码在文末,应用“循环”与“数组”实现游戏开发,一起玩一下经典小游戏吧
- js 数组与字符串的相互转化
- LeetCode·304竞赛·6132·使数组中所有元素都等于零·模拟·哈希
- POJ1226:Substrings(后缀数组)
- 算法:找出数组中和为n的两个数-双指针思想
- 指针函数和数组指针
- 【luogu CF461C】Appleman and a Sheet of Paper(树状数组)
- JS数组的常用方法总结
- 理解C语言——从小菜到大神的晋级之路(8)——数组、指针和字符串
- leetcode 718 最长重复子数组
- 【Java基础系列】java数组转List
- 代码练习——数组与指针