c语言指针用法
时间: 2023-08-21 15:09:29 浏览: 55
C语言中的指针是一个非常重要的概念,它是许多高级特性的基础,如动态内存分配和复杂数据结构。指针是一个变量,它存储了一个内存地址,这个地址指向另一个变量的存储位置。
下面是一些常见的指针用法:
1. 声明指针变量:指针变量的声明需要使用星号(*),例如:
```
int *ptr;
char *str;
```
2. 取地址运算符(&):取地址运算符可以返回一个变量的地址,如:
```
int num = 10;
int *ptr = #
```
这里ptr指向了变量num的地址。
3. 解引用运算符(*):解引用运算符可以返回一个指针所指向的变量的值,如:
```
int num = 10;
int *ptr = #
printf("%d\n", *ptr); // 输出10
```
4. 指针的算术运算:指针可以进行加减运算,如:
```
int arr[3] = {1, 2, 3};
int *ptr = &arr[0];
ptr++; // 指向arr[1]
ptr--; // 指向arr[0]
```
注意,指针运算的单位是指针类型所占用的字节数。
5. 指针和数组:数组名本身就是一个指针,它指向数组的第一个元素。可以通过指针来访问数组中的元素,如:
```
int arr[3] = {1, 2, 3};
int *ptr = &arr[0];
printf("%d\n", *(ptr+1)); // 输出2
```
6. 指针和函数:指针可以作为函数的参数和返回值,如:
```
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1 = 10, num2 = 20;
swap(&num1, &num2);
printf("%d %d\n", num1, num2); // 输出20 10
return 0;
}
```
这里swap函数接收两个指针参数,通过解引用运算符来交换它们所指向的变量的值。
以上是一些常见的指针用法,掌握好指针的使用可以让你更加灵活地处理数据和内存。