指针和数组的关系
//数组可以存放多个元素,指针指向的是其中一个元素的地址,存放的是地址
int main()
{
int arr[10] = { 0 };
int* p = arr;
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%p ----- %p\n", p + i, &arr[i]);
}//&arr[i] 与 p+i 地址是相同的,可以用指针直接访问数组
return 0;
}
int main()
{
int arr[10] = { 0 };
printf("%p\n", arr); //00000064bdeffb78 首元素的地址
printf("%p\n", arr+1); //00000064bdeffb7c +1 地址+4个字节
printf("%p\n", &arr[0]);//00000064bdeffb78
printf("%p\n", &arr[0]+1);//00000064bdeffb7c +1 地址+4个字节
printf("%p\n", &arr);//00000064bdeffb78
printf("%p\n", &arr+1);//00000064bdeffba0 +1 地址+ 40个字节(整个数组)
//00000064bdeffba0 - 00000064bdeffb78 = a0 - 78(16进制) = 28(16进制)
//28(16进制)换算十进制 2乘16的1次方 + 8乘16的0次方 = 40
//&arr - &数组名 - 数组名不是首元素的地址-数组名表示整个数组
//sizeof(arr) - sizeof(数组名) - 数组名表示整个数组,计算的是整个数组的大小
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)