C语言编程面试常见问题S2

2021年4月16日19:23:11 发表评论 923 次浏览

本文概述

这是第二套文章

C编程面试常见问题套装1

C语言的主要特征是什么?

C是一种过程语言。 C语言的主要功能包括对内存的低级访问, 简单的关键字集和简洁的样式。这些功能使其适用于诸如操作系统或编译器开发之类的系统编程。

i ++和++ i有什么区别?

1)表达式" i ++"返回旧值, 然后递增i。表达式++ i递增该值并返回新值。

2)后缀++的优先级高于前缀++。

3)后缀++的关联性从左到右, 前缀++的关联性从右到左。

4)在C++中, ++ i可用作左值, 但i ++不能用作左值。在C中, 它们都不能用作l值。

看到

++ * p, * p ++和* ++ p之间的区别

更多细节。

什么是l值?

l值或位置值是指可以在赋值运算符左侧使用的表达式。例如, 在表达式" a = 3"中, a是l值, 而3是r值。

l值有两种类型:

"不可修改的l值"表示无法修改的l值。 const变量是"不可修改的l值"。

"可修改的l值"表示可以修改的l值。

参考

C语言中的左值和右值

有关详细信息。

数组和指针有什么区别?

看到

数组与指针

如何编写自己的sizeof运算符?

C

#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)

看到

实施自己的sizeof

更多细节。

如何在不使用循环的情况下打印1到100之间的数字?

为此, 我们可以使用递归。

C

/* Prints numbers from 1 to n */
void printNos(unsigned int n)
{
   if (n> 0)
   {
     printNos(n-1);
     printf ( "%d " , n);
   }
}

什么是volatile关键字?

volatile关键字旨在防止编译器对可能以编译器无法确定的方式更改的对象进行任何优化。

声明为volatile的对象从优化中被省略, 因为它们的值可以随时通过当前代码范围之外的代码进行更改。看到

了解C语言中的"易失性"限定词

更多细节。

变量可以同时是const和volatile吗?

是的, const表示无法为变量分配新值。该值可以由其他代码或指针更改。例如, 以下程序可以正常运行。

C

#include <stdio.h>
int main( void )
{
     const volatile int local = 10;
     int * ptr = ( int *)&local;
     printf ( "Initial value of local : %d \n" , local);
     *ptr = 100;
     printf ( "Modified value of local: %d \n" , local);
     return 0;
}
  • 实践测验在C上
  • C文章

我们很快将发布更多套常见的C编程问题。

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: