系列文章目录
🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼
🎉🎉我的C语言初阶合集:C语言初阶合集,希望能帮到你!!!😍 😍
🔍🔍我的C语言进阶合集:我的C语言进阶合集,期待你的点击!!!🌈🌈
文章目录
前言
一、指针变量和数组
(1)指针变量的定义:
举个例子:
int a = 5;//定义一个整型变量 a
int *p = &a; // p 是一个整型指针变量,存储了变量 a 的地址
(2)数组的定义:
举个例子:
int arr[5] = {1, 2, 3, 4, 5}; // 定义一个包含 5个整数 的一维整型数组
(3)指针变量和数组的联系
(3.1)数组名的含义:
举个例子:
int arr[5] = {1, 2, 3, 4, 5}; // 定义一个包含 5个整数 的一维整型数组
int *p = arr; // 这里 arr 被解释为 数组首元素的地址,赋值给了指针 p
(3.2)指针和数组的关系及示例:
#include <stdio.h>
int main()
{
// 定义一个包含 5个整数 的一维整型数组
int arr[5] = { 1, 2, 3, 4, 5 };
// p 指向数组的第一个元素
int* p = arr;
// for 遍历输出
for (int i = 0; i < 5; i++)
{
printf("%d ", *(p + i)); // 通过指针 p 遍历数组
}
return 0;
}
- 结果展示(示例):
二、二级指针
(1)前言:
一级指针:
- 例子:
int a = 10;
int *p = &a; // p 是一个 一级指针,指向变量 a 的地址
(2) 定义:
(3) 使用:
(4) 例子:
int a = 10;
int *p = &a; // p 是一个 一级指针,指向变量 a 的地址
int **pp = &p; // pp 是一个 二级指针,指向指针 p 的地址
三、指针数组
(1) 前言:
(2) 定义语法:
type *arrayName[arraySize];
(3) 使用注意事项:
(4)例子:
#include <stdio.h>
int main()
{
//定义并初始化字符串
//定义了三个字符串指针 str1、str2 和 str3,
//并将它们分别初始化为指向三个不同的字符串常量。
char* str1 = "Hello, World!";
char* str2 = "This is a pointer array example.";
char* str3 = "Goodbye!";
// 定义一个指针数组来存储字符串的地址
char* arr[3];
// 将字符串的地址赋值给指针数组的元素
arr[0] = str1;
arr[1] = str2;
arr[2] = str3;
// 遍历指针数组并打印每个字符串
for (int i = 0; i < 3; i++)
{
printf("%s\n", arr[i]);
}
// 注意:在这个例子中,我们不需要释放str1, str2, str3和 arr指向的内存,
// 因为它们指向的是字符串常量,这些常量通常存储在程序的只读数据段中,
// 由编译器和链接器管理。
// 然而,如果指针数组指向的是动态分配的内存,
// 那么在使用完毕后应该释放这些内存。
return 0;
}
- 结果展示:
END
每天都在学习的路上!
On The Way Of Learning