-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.
第一:
指针运算
必考知识点
#include <stdio.h>
//二维数组名代表 数组首元素
//二维数组是以一维数组存在的
//指针运算
void main()
{
int TestArray[5][5] = { {11,12,13,14,15},
{16,17,18,19,20},
{21,22,23,24,25},
{26,27,28,29,30},
{31,32,33,34,35}
};
//TestArray[5][5]的位置
int* p1 = (int*)(&TestArray + 1);
//TestArray + 1 数组第二个位置
//*(TestArray + 1) 数组第二个位置({16,17,18,19,20})的地址
// (*(TestArray + 1) + 6) 16是第0位,向后移6位是22
int* p2 = (int*)(*(TestArray + 1) + 6);
//*TestArray 代表数组{11,12,13,14,15} ; *(*TestArray) 代表11
//*(*(TestArray + 1)) 代表 16
//TestArray + 3 代表 {26,27,28,29,30} ; *(TestArray + 3) + 3 代表 29的地址
//p1代表{31,32,33,34,35} p1[-8]代表35向后数8位 是 27