编程之家(jb51.cc)面试题栏目主要收集程序员面试题,例如:前端面试题、php面试题、后端面试题等。
上述代码的输出将是 1.200000,有 6 个空格。 解释:这里 1.200000 是用 6 个空格打印的,因为通过在 printf 中给出 * 可以指定一个额外的宽度参数,这里pos是宽度,data是值。 如果数字小于宽度,则其余部分用
常量指针:常量指针是其值(指向的地址)不可修改的指针。 如果尝试修改指针值,将得到编译器错误。常量指针声明如下:
当在操作数上使用后自增 (++) 运算符时,结果是操作数的值,得到结果后,操作数的值加 1。后自减 (–-) 的工作 运算符类似于后自增运算符,但不同之处在于操作数的值减 1。
现在的编译器已经足够聪明了,它们根据需求优化代码。 post 和 pre-increment 都有自己的重要性,我们需要根据要求使用它们。如果您通过字符指针逐字节读取闪存,那么在这里您必须使用后增量,否则将跳过数据的
*ptr++ 和 ++*ptr两种表达方式不同。下面通过一个示例代码来了解这两个表达式之间的区别。
这两种表达方式不同。 下面来看一个示例代码来了解这两个表达式之间的区别。
常量和宏的主要区别如下: const 关键字由编译器处理,另一方面,宏由预处理器指令处理。
volatile 关键字是一种类型限定符,可防止编译器优化对象。 根据 C 标准,具有 volatile 限定类型的对象可能会以实现未知的方式进行修改或具有其他未知的副作用。也可以说,可以随时更改 volatile 限定对象的值
可以,可以在 C 语言中创建一个 volatile 指针。示例代码如下: int * volatile piData; // piData is a volatile pointer to an integer.
在这里,指出了一些需要使用 volatile 关键字的重要地方。 1、访问内存映射的外设寄存器或硬件状态寄存器。示例代码:
const 关键字是编译器强制执行的,它表示程序无法更改对象的值,这意味着它使对象成为不可修改的类型。例如:
是的,可以同时使用常量和易失性。 volatile 和 const 关键字的最大用途之一是在访问 GPIO 寄存器时。 在 GPIO 的情况下,如果它被配置为输入,它的值可以通过“外部因素”(如果开关或任何输出设备连接到 GPIO)
设置第 N 位设置第 N 位意味着如果第 N 位为 0,则将其设置为 1,如果为 1,则保持不变。 在 C 中,按位或运算符 (|) 用于设置整数数据类型的位。 据我们所知| (按位或运算符)计算一个新的整数值,其中每个位的
让给定的整数是a和b。 如果a的符号位与b的符号位不同,则a和b的符号位 (MSB) 的 EX-OR 将为 1。 换句话说,如果a和b的符号相反,a和b的异或将是负数。
有很多方法可以反转数字的位,这里描述了三种通用的方法来反转位。 方法一
参考以下代码实现: #define CHAR_BITS8// size of character #define INT_BITS( sizeof(int) * CHAR_BITS) //bits in integer
假设 a、b 两个数字,有很多方法不使用第三个变量交换两个数字的值。 方法1(使用算术运算符):
下面来看看如何编写一个小算法来检查 2 的幂。如果一个数字是 2 的幂,则函数返回 1。示例代码1:
请参考下面代码实现: unsigned int NumberSetBits(unsigned int n) { unsigned int CountSetBits= 0;
在C程序中有下面情节应该使用指针: 传递大型结构喜欢的服务器请求或响应数据包。
void 指针是通用指针。它没有关联的数据类型,这就是为什么它可以存储任何类型对象的地址并类型转换为任何类型的原因。根据 C 标准,指向 void 的指针应具有与指向字符类型的指针相同的表示和对齐要求。 void 指
C语言中的 void 指针有以下优点: 使用 void 指针,可以创建一个可以接受任何数据类型参数的通用函数。 memcpy 和 memmove 库函数是泛型函数的最佳示例,使用这些函数可以将数据从源复制到目标。例如:
通常,当引用对象被删除或释放时,会出现延迟指针,而不会更改指针的值。 它会产生问题,因为指针仍然指向不可用的内存。 当用户尝试取消引用悬空指针时,它会显示未定义的行为,并且可能是分段错误的原因。
在首次使用之前未正确初始化的指针称为野指针。 未初始化的指针行为是完全未定义的,因为它可能指向某个可能导致程序崩溃的任意位置,这就是它被称为野指针的原因。换句话说,编程语言中没有被编译器或程序员初
根据 C 标准,值为 0 的整数常量表达式,或转换为 void * 类型的此类表达式称为空指针常量。 如果将空指针常量转换为指针类型,则生成的指针称为空指针。语法:
函数指针类似于其他指针,但唯一的区别是它指向函数而不是变量。换句话说,函数指针是一种存储函数地址的指针,这些指向的函数可以在程序中随时被函数指针调用。
声明函数指针的语法非常简单。 一开始似乎很难,但是一旦熟悉了函数指针,它就会变得容易。函数指针的声明类似于函数的声明。 这意味着函数指针还需要返回类型、声明名称和参数列表。 需要记住的一件事是,每当
有很多地方可以使用函数指针。 通常,函数指针用于实现回调函数、有限状态机以及提供C语言中的多态特性等。
数组和指针之间的一个重要区别是数组中元素的地址始终是固定的,不能在执行时修改地址,但对于指针,可以根据需要更改指针的地址。考虑下面的例子:
根据 C 标准,有四种存储持续时间,静态、线程 (C11)、自动和分配。存储期限决定了对象的生命周期。