c语言面试题
时间: 2023-07-26 07:10:28 浏览: 73
好的,下面是一些可能会在C语言面试中出现的问题:
1. 什么是指针?
指针是一个变量,其值为另一个变量的地址。在C语言中,指针变量用于存储地址,以便可以访问该地址处存储的数据。
2. 如何声明一个指针变量?
指针变量的声明方式如下:
```
int *p;
```
其中,`int`是指向的数据类型,`*`表示该变量是一个指针变量,`p`是变量名。
3. 如何使用指针访问变量的值?
使用指针访问变量的值需要使用解引用运算符`*`,例如:
```
int a = 10;
int *p = &a;
printf("%d", *p); // 输出:10
```
4. 什么是动态内存分配?
动态内存分配是指在程序运行时根据需要分配内存空间。在C语言中,可以使用`malloc()`函数分配动态内存空间,使用`free()`函数释放已分配的内存空间。
5. 如何使用结构体?
结构体是一种用户自定义的数据类型,可以使用关键字`struct`定义。例如:
```
struct person {
char name[20];
int age;
};
```
可以使用以下方式定义结构体变量:
```
struct person p1;
p1.age = 20;
strcpy(p1.name, "Tom");
```
6. 什么是指针数组?
指针数组是一个数组,其中每个元素都是指针类型。例如:
```
int a = 10, b = 20, c = 30;
int *arr[] = {&a, &b, &c};
printf("%d", *arr[0]); // 输出:10
```
7. 什么是函数指针?
函数指针是一个指向函数的指针变量。例如:
```
int add(int a, int b) {
return a + b;
}
int (*p)(int, int) = add;
printf("%d", (*p)(1, 2)); // 输出:3
```
其中,`p`是一个指向函数`add`的指针变量,可以通过`(*p)(1, 2)`调用该函数。
以上是一些常见的C语言面试题,希望能对你有帮助!