字符指针

[C语言] 指针进阶_数组


3、4是常量字符串 都不能更改   所以内存中没必要存2份   所以指针指向同一地址

3、4最好用const修饰


指针数组


#include <stdio.h>


int main()
{
int a[5] = {1,2,3,4,5};
int b[5] = {22,2,3,4,5};
int c[5] = {1,2,3,4,6};
int* arr[3] = { a,b,c }; //指针数组
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 5; j++)
{
//printf("%d ",*(arr[i]+j));
printf("%d ", arr[i][j] ); // [ j ] 转变成 +j 解引用
}
printf("\n");
}

return 0;
}


数组指针

[C语言] 指针进阶_数组指针_02


#include <stdio.h>

int main() //指针类型影响指针运算
{
int arr[10];

int* p1 = arr; //首元素地址

int(*p2)[10] = &arr; //数组的地址

printf("%p\n",p1);
printf("%p\n",p1+1); //下一个元素
printf("%p\n",p2);
printf("%p\n",p2+1); //下一个数组

return 0;
}