C语言中的指针
发布时间: 2024-03-14 16:36:49 阅读量: 42 订阅数: 23
c语言中的指针
# 1. 认识指针
1.1 什么是指针?
在C语言中,指针是一种特殊的变量,其存储的是一个变量的内存地址。通过指针,我们可以直接访问和修改这个内存地址中的值。指针是C语言中非常重要和强大的概念,能够实现动态内存分配、数组操作等功能。
1.2 指针的定义与声明
指针的定义格式为:`<数据类型> *<指针变量名>;`,比如`int *ptr;`定义了一个指向整型变量的指针ptr。
1.3 指针变量的初始化
指针变量可以通过赋值一个变量的地址进行初始化,例如:`int num = 10; int *ptr = #`,ptr现在指向了num的地址。
1.4 指针的运算符与操作
在C语言中,指针运算符`*`用于访问指针所指向的变量的值,`&`用于获取变量的地址。指针也可以进行算术运算,比如指针加减整数表示在存储单元上前进或后退若干个单位。
```c
#include <stdio.h>
int main() {
int num = 10;
int *ptr = # // 指针ptr指向num的地址
printf("num的值为:%d\n", *ptr);
printf("num的地址为:%p\n", &num);
printf("ptr所指向的值为:%d\n", *ptr);
return 0;
}
```
**代码总结**:本节介绍了指针的基本概念,包括指针的定义、声明、初始化和基本操作。
**结果说明**:程序输出了变量num的值、地址,以及指针ptr所指向的值。
# 2. 指针与变量
在C语言中,指针与变量之间有着密切的关系。接下来将详细介绍指针与变量在C语言中的应用。
### 2.1 指针与变量的关系
指针是一个存储变量地址的变量。通过指针,我们可以访问和修改变量的值,而不是直接操作变量本身。下面是一个简单的示例:
```c
#include <stdio.h>
int main() {
int num = 10;
int *ptr; // 定义一个整型指针
ptr = # // 将指针指向num的地址
printf("变量num的值:%d\n", num);
printf("指针ptr指向的值:%d\n", *ptr);
return 0;
}
```
**代码解读与总结:**
- 我们定义了一个整型变量`num`,并且定义了一个整型指针`ptr`。
- 将指针`ptr`指向变量`num`的地址,即`&num`。
- 通过指针`ptr`访问变量`num`的值,需要使用`*ptr`的方式。
**运行结果:**
```
变量num的值:10
指针ptr指向的值:10
```
### 2.2 指针与数组
指针和数组在C语言中有着密切的关系。数组名其实是一个指向数组第一个元素的指针常量。下面是一个示例:
```c
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int *ptr;
ptr = arr; // 将指针指向数组arr的第一个元素
for (int i = 0; i < 5; i++) {
printf("数组元素%d:%d\n", i+1, *(ptr + i));
}
return 0;
}
```
**代码解读与总结:**
- 定义了一个整型数组`arr`,并且定义了一个整型指针`ptr`。
- 将指针`ptr`指向数组`arr`的第一个元素,即`arr`即为`&arr[0]`。
- 通过指针`ptr`访问数组元素的值,需要使用`*(ptr + i)`的方式。
**运行结果:**
```
数组元素1:1
数组元素2:2
数组元素3:3
数组元素4:4
数组元素5:5
```
###2.3 指针与字符串
在C语言中,字符串实际上是以空字符`\0`结尾的字符数组,因此指针在处理字符串时非常重要。下面是一个展示字符串指针的示例:
```c
#include <stdio.h>
int main() {
char str[] = "Hello";
char *ptr;
ptr = str; // 将指针指向字符串str的首地址
while (*ptr != '\0') {
printf("%c ", *ptr);
ptr++;
}
return 0;
}
```
**代码解读与总结:**
- 定义了一个字符数组`str`作为字符串,同时定义了一个字符型指针`ptr`。
- 将指针`ptr`指向字符串`str`的首地址,即`str`即为`&str[0]`。
- 通过指针`ptr`遍历打印字符串中的字符,直到遇到空字符`\0`。
**运行结果:**
```
H e l l o
```
### 2.4 指针作为函数参数
在C语言中,指针经常被用作函数的参数,可以通过指针修改函数外部变量的值。接下来是一个展示指针作为函数参数的示例:
```c
#include <stdio.h>
void addOne(int *nu
```
0
0