C语言学习之指针知识总结
什么是指针?
指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址(十六进制表示)。通俗来讲,指针就是一个保存地址的变量。
如何声明指针?
在C语言中,我们可以使用"*"来声明一个指针变量,例如:
int *p; // 声明一个指向int类型的指针变量
如何初始化指针?
在声明指针变量的时候,可以给它赋初始值,例如:
int a = 10;
int *p = &a; // 将p指向a的地址
如何使用指针?
-
取出指针所指向的变量的值
c
int a = 10;
int *p = &a;
printf("%d",*p); // 输出10 -
改变指针所指向的变量的值
c
int a = 10;
int *p = &a;
*p = 20;
printf("%d",a); // 输出20 -
指针运算
-
指针加法
c
int a[5] = {1,2,3,4,5};
int *p = a;
printf("%d", *(p + 2)); // 输出3 -
指针减法
c
int a[5] = {1,2,3,4,5};
int *p = a + 4;
printf("%d", *(p - 2)); // 输出3
-
指针与数组
在C语言中,数组名的作用就是用来表示数组的首地址。因此,数组名可以被认为是一个指向数组首地址的常量指针。
举个例子:
int a[3] = {1,2,3};
int *p = a; // p指向数组a的首地址,即&a[0]
指针与函数
指针可以被用来传递函数参数,这样可以通过指针改变函数外的变量的值。这就是所谓的函数调用“按引用传参”。
举个例子:
void changeValue(int *p) {
*p = 20;
}
int a = 10;
changeValue(&a);
printf("%d", a); // 输出20
示例1:指针数组
指针数组是一个数组,数组中的每个元素都是指针类型。
举个例子:
int a = 10;
int b = 20;
int *p[2] = {&a, &b}; // 声明一个指针数组,其中p[0]指向a,p[1]指向b
printf("%d", *p[0]); // 输出10
printf("%d", *p[1]); // 输出20
示例2:指向指针的指针
指向指针的指针被称为“多级指针”。
举个例子:
int a = 10;
int *p = &a;
int **q = &p; // q指向p的地址,即&q
printf("%d", **q); // 输出10
以上就是指针的一些基本知识点及使用方式的总结,希望能帮助大家理解指针在C语言中的重要性和应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言学习之指针知识总结 - Python技术站