</pre><h1>以最简单的一维数组说明:</h1><pre class="cpp" name="code">#include <stdio.h>
#include <stdlib.h>
void main()
{
int arr[] = {1,3,5};
//一般数组赋值
int arr1[3];
for (int i =0; i < 3; i++)
{
arr1[i] = arr[i];//这个没什么好说的了
printf("arr1[i] =%d\n", arr1[i]);
}
//指针数组赋值
int *arr2[3];//指针数组,说明了,指针指向一个数组,和arr类型匹配了
for (int i =0; i < 3; i++)
{
arr2[i] = &arr[i];
printf("arr2[i] =%d", *(arr2[i]));
printf("*(arr2 + i) = %d\n", **(arr2 + i));
}
const int *p;
int const *p1;
int (*p3)[3];//数组指针
p3 = &arr;//数组整体大小空间
for (int i =0; i<3; i++)
{
printf("------p3 =%d\n", **(p3++));//越界
}
//printf("&arr =%d------", &arr);
//printf("arr =%d\n", arr);
p = arr;
for (int i =0; i<3; i++)
{
printf("%d\n",*p++);
}
//int *const p2;//指针本身值不能改变,未初始化报错
int *const p2 = arr;
//printf("%d\n",*p2);
/*for (int i=0; i < 3; i++)
{
printf("%d\n",*p2++);//p2 不可改变,所以懂了撒
}*/
system("pause");
数组和 指针几种常用形式
#include <stdlib.h>
#include <stdio.h>
void main()
{
int arr[] = {1,2,3,4,5,6};
int *ptr;
ptr = arr;
for (int i =0; i < 6; i++)
{
printf("*(ptr + i) = %d,*(arr+i) = %d\n", *(ptr+i),*(arr + i));
}
for (int i =0; i < 6; i++)
{
printf("*ptr++ = %d,,arr[i] = %d\n", *ptr++,arr[i]);
}
system("pause");
}
指针修改数组
#include <stdlib.h>
#include <stdio.h>
void main()
{
int arr[] = {1,2,3,4,5,6};
int *ptr;
ptr = arr;
//指针去修改数组值
for (int i =0; i < 6; i++)
{
*(ptr+i) = 15;//最重要还是这句ptr = arr; 就是说你可以使用ptr 替换arr
printf("*ptr++ = %d\n", *ptr+i);
}
system("pause");
}