📅  最后修改于: 2023-12-03 15:14:26.685000             🧑  作者: Mango
作为 C 程序员,我们需要深入了解语言的细节和常见问题。在面试过程中,常见的问题集中在一些基础的知识点和技术难点上。这个套装包含了一些面试中常见的问题,希望能够帮助程序员更好地准备面试。
数据类型是指一种数据的类型或范围。C 语言中的数据类型包括基本数据类型(整型、浮点型、字符型等)和派生数据类型(数组、结构体、共用体等)。
short
和 long
数据类型表示的范围是什么?short
和 long
是两种整型数据类型。short
的大小为 2 字节,范围为 -32768 到 32767。long
的大小为 4 字节,范围为 -2147483648 到 2147483647。
float
和 double
数据类型表示的范围是什么?float
和 double
是两种浮点型数据类型。float
的大小为 4 字节,可以表示大约 6 位小数。double
的大小为 8 字节,可以表示大约 15 位小数。
char
数据类型的大小是多少?char
的大小为 1 字节。
C 语言中没有原生的布尔类型。可以使用 stdbool.h
头文件中的 _Bool
数据类型,或者使用 int
类型,其中 0 表示 false,非 0 表示 true。
指针是一种变量,它存储了内存地址。指针可以用于访问内存中的数据。
通过在变量名前加上 *
符号来声明指针变量,例如:
int *ptr;
这里声明了一个名为 ptr
的指向 int
类型的指针变量。
可以使用 &
运算符来获取变量的地址。例如:
int num = 123;
int *ptr = #
这里声明了一个指向 int
类型的指针变量 ptr
,它指向变量 num
的地址。
可以使用 *
运算符来获取指针指向的值。例如:
int num = 123;
int *ptr = #
printf("%d", *ptr);
这里输出了指针 ptr
指向的值,也就是变量 num
的值。
可以使用 *
运算符来获取指针指向的值,然后为其赋值。例如:
int num = 123;
int *ptr = #
*ptr = 456;
printf("%d", num);
这里将指针 ptr
指向的值修改为了 456,变量 num
的值也被修改为了 456。
数组是一种存储相同类型数据的数据结构。数组可以存储多个元素,这些元素可以通过下标进行访问。
可以使用以下语法来声明数组:
type arrayName[arraySize];
其中,type
表示数组元素的类型,arrayName
表示数组的名字,arraySize
表示数组的大小。
例如:
int nums[10];
这里声明了一个名为 nums
的 int
类型数组,数组大小为 10。
可以使用以下语法来初始化数组:
type arrayName[arraySize] = {element0, element1, ..., elementN};
其中,type
表示数组元素的类型,arrayName
表示数组的名字,arraySize
表示数组的大小,element0
到 elementN
表示数组元素的值。
例如:
int nums[4] = {1, 2, 3, 4};
这里声明了一个名为 nums
的 int
类型数组,并初始化为 1,2,3,4。
可以使用循环结构遍历数组,例如:
int nums[4] = {1, 2, 3, 4};
for (int i = 0; i < 4; i++) {
printf("%d", nums[i]);
}
这里输出了数组 nums
中的每一个元素。
可以使用以下语法通过指针访问数组元素:
*(arrayName + index)
其中,arrayName
表示数组的名字,index
表示元素的索引。
例如:
int nums[4] = {1, 2, 3, 4};
int *ptr = nums;
printf("%d", *(ptr + 2));
这里输出了数组 nums
中索引为 2 的元素。
字符串是一组字符的序列,以空字符 '\0'
结尾。在 C 语言中,字符串实际上是一个字符数组。
可以使用以下语法来声明字符串:
char str[] = "Hello, world!";
也可以使用以下语法来声明字符串:
char *str = "Hello, world!";
这两种方式都声明了一个名为 str
的字符串,存储了 "Hello, world!" 这个字符串。
可以使用 strlen
函数来获取字符串的长度。例如:
char str[] = "Hello, world!";
int len = strlen(str);
printf("%d", len);
这里输出了字符串 str
的长度。
可以使用 strcmp
函数来比较两个字符串是否相等。例如:
char str1[] = "Hello, world!";
char str2[] = "Hello, World!";
int result = strcmp(str1, str2);
if (result == 0)
printf("两个字符串相等");
else if (result < 0)
printf("字符串 str1 小于字符串 str2");
else
printf("字符串 str1 大于字符串 str2");
这里输出了两个字符串 str1
和 str2
是否相等。
可以使用 atoi
函数将字符串转换为整数。例如:
char str[] = "123";
int num = atoi(str);
printf("%d", num);
这里输出了字符串 str
转换后的整数值。