c语言指针进阶 头哥
时间: 2023-12-14 17:04:31 浏览: 143
C语言指针进阶主要包括以下几个方面:
1.指针的指针:指针的指针是指一个指针变量的地址,即一个指向指针变量的指针。可以通过指针的指针来修改指针变量的值。例如:
```c
int a = 10;
int *p = &a;
int **pp = &p;
**pp = 20;
printf("%d", a); // 输出:20
```
2.指针数组:指针数组是一个数组,其中的每个元素都是一个指针。可以通过指针数组来存储多个指针变量的地址。例如:
```c
int a = 10, b = 20, c = 30;
int *p[3] = {&a, &b, &c};
for (int i = 0; i < 3; i++) {
printf("%d ", *p[i]);
}
// 输出:10 20 30
```
3.动态内存分配:动态内存分配是指在程序运行时根据需要动态地分配内存空间。可以使用malloc函数来动态分配内存空间,使用free函数来释放内存空间。例如:
```c
int n;
scanf("%d", &n);
int *p = (int*)malloc(sizeof(int) * n);
for (int i = 0; i < n; i++) {
scanf("%d", &p[i]);
}
for (int i = 0; i < n; i++) {
printf("%d ", p[i]);
}
free(p);
```
4.指针和字符串:字符串在C语言中是以字符数组的形式存储的,可以使用指针来操作字符串。例如:
```c
char str[] = "hello world";
char *p = str;
while (*p != '\0') {
printf("%c", *p);
p++;
}
// 输出:hello world
```
阅读全文