数组和指针
208字小于1分钟
2024-09-18
数组和指针
#include <stdio.h>
int main(){
char str[] = "Hello World!";
char *p = str;
char p2 = str[0];
printf("%c %c",*p,p2);
}
发现 p
和 p2
的值是一样的,也就是说下标也就是一个简化后的指针
本身的 str
保存的就是 数组 的首个地址,指针也就也是这个地址
指针也是可以进行运算的
#include <stdio.h>
int main(){
char str[] = "Hello World!";
char *p = str;
// ↓ 这样就往后移动了一倍的对应类型大小
printf("%c",*(p+1));
}
这样我们就知道了 *(p+i)
和 str[i]
的作用是相同的
二维数组
#include <stdio.h>
int main()
{
int arr[2][3] = {{123, 233, 444}, {333, 666, 888}};
// ↓ 需要先降一维才可以使用指针
int* p = arr[0];
printf("%d", *(p + 1));
}