c语言指针基础知识点
时间: 2023-11-24 12:51:02 浏览: 115
以下是C语言指针的基础知识点:
1.指针的定义和初始化
指针是一个变量,其值为另一个变量的地址。定义指针变量时需要指定指针所指向的变量类型,然后使用*运算符来声明指针变量。指针变量的初始化可以为其赋值为另一个变量的地址,也可以将其初始化为NULL。
2.指针的运算
指针可以进行加、减、自增、自减等运算。指针加上一个整数n时,指向的地址会增加n个存储单元的大小,减去一个整数n时,指向的地址会减少n个存储单元的大小。
3.指针的比较
指针可以进行相等、大于、小于等比较运算。当两个指针指向同一个变量时,它们相等;当两个指针指向同一数组中的不同元素时,它们可以进行大小比较。
4.指针的类型转换
指针可以进行类型转换,但需要注意转换后的指针类型必须与指向的变量类型相同,否则可能会导致程序出错。
5.指针和数组
数组名本身就是一个指针,指向数组的第一个元素。可以使用指针来访问数组中的元素,也可以将指针作为函数参数来传递数组。
以下是一个例子,演示了指针的定义、初始化、运算和比较:
```c
#include <stdio.h>
int main() {
int a = 10;
int *p = &a; // 定义指向整型变量a的指针p
printf("a的值为:%d\n", a); // 输出:a的值为:10
printf("p指向的变量的值为:%d\n", *p); // 输出:p指向的变量的值为:10
printf("p的值为:%p\n", p); // 输出:p的值为:0x7ffeeb5f8a2c
printf("p+1的值为:%p\n", p+1); // 输出:p+1的值为:0x7ffeeb5f8a30
printf("p的地址为:%p\n", &p); // 输出:p的地址为:0x7ffeeb5f8a28
printf("p和&a的比较结果为:%d\n", p == &a); // 输出:p和&a的比较结果为:1
return 0;
}
```
阅读全文