当前位置: 首页 > news >正文

C语言经典面试题目(二十六)

1、解释一下C语言中的函数原型及其作用。

函数原型是指在函数定义之前声明函数的参数类型、返回类型和函数名称的一种声明方式。函数原型的作用包括:

  1. 编译器检查:函数原型能够告诉编译器函数的返回类型和参数类型,从而能够在编译阶段检查函数调用的合法性。
  2. 可读性和维护性:函数原型可以增加代码的可读性和可维护性,让代码更加清晰易懂。
  3. 防止默认类型转换:函数原型可以防止默认类型转换,确保函数调用时传入的参数类型正确。
// 函数原型
int add(int a, int b);// 函数定义
int add(int a, int b) {return a + b;
}

2、什么是位移操作符?如何在C语言中进行位移操作?

位移操作符用于对整数的二进制位进行移动。在C语言中,位移操作符包括左移操作符<<和右移操作符>>

  • 左移操作符<<:将一个数的二进制位向左移动指定的位数,右侧空出的位用0填充。

    int result = 5 << 2; // 5的二进制为00000101,左移2位得到00010100,即20
    
  • 右移操作符>>:将一个数的二进制位向右移动指定的位数,左侧空出的位用符号位填充。

    int result = 20 >> 2; // 20的二进制为00010100,右移2位得到00000010,即2
    

3、解释一下C语言中的条件表达式。

条件表达式是指在C语言中用于进行条件判断的表达式,通常使用三元运算符? :表示。

condition ? expression1 : expression2;

如果条件condition为真,则返回expression1的值;否则返回expression2的值。

int max = (a > b) ? a : b; // 如果a大于b,则返回a的值;否则返回b的值

4、什么是函数重载?C语言中是否支持函数重载?

函数重载是指在同一个作用域内,可以定义多个同名函数,但它们的参数列表不同(包括参数类型、参数个数、参数顺序等)。通过函数重载,可以根据不同的参数列表调用不同的函数。

在C语言中,并不支持函数重载。C语言中的函数名称是唯一的,不能根据参数列表的不同来区分同名函数。如果定义了两个同名函数,编译器会报错。

5、解释一下C语言中的指针数组和数组指针的区别。

  • 指针数组:指针数组是一个数组,其元素都是指针。即每个数组元素都指向某个类型的数据。

    int *ptrArray[5]; // 声明一个包含5个指针的数组
    
  • 数组指针:数组指针是一个指针,指向一个数组。即指针指向某个数组的首地址。

    int (*ptr)[5]; // 声明一个指向包含5个整数的数组的指针
    

指针数组和数组指针的区别在于,指针数组的每个元素都是一个指针,而数组指针指向整个数组。

相关文章:

C语言经典面试题目(二十六)

1、解释一下C语言中的函数原型及其作用。 函数原型是指在函数定义之前声明函数的参数类型、返回类型和函数名称的一种声明方式。函数原型的作用包括&#xff1a; 编译器检查&#xff1a;函数原型能够告诉编译器函数的返回类型和参数类型&#xff0c;从而能够在编译阶段检查函…...

创建一个electron-vite项目

前置条件&#xff1a;非常重要&#xff01;&#xff01;&#xff01; npm: npm create quick-start/electronlatest yarn: yarn create quick-start/electron 然后进入目录&#xff0c;下载包文件&#xff0c;运行项目 到以上步骤&#xff0c;你已经成功运行起来一个 electr…...

Codeforces Round 935 (Div. 3)A~E

A. Setting up Camp 题目分析: 有三种人&#xff0c;内向、外向、综合&#xff0c;内向必须独自一个帐篷&#xff0c;外向必须3个人一个帐篷&#xff0c;综合介于1~3人一个帐篷&#xff0c;我们发现非法情况只会存在外向的人凑不成3个人一个帐篷的情况&#xff0c;因外向不够可…...

ES: spring boot中使用ElasticsearchClient

一、依赖&#xff1a;&#xff08;要根据不同版本的ES来调整依赖,否则会报错&#xff0c;不支持太低版本的ES&#xff0c;比如7.6以下的&#xff09; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-e…...

实体框架EF(Entity Framework)简介

实体框架EF&#xff08;Entity Framework&#xff09;简介 文章目录 实体框架EF&#xff08;Entity Framework&#xff09;简介一、概述二、O/R Mapping是什么采用O/R Mapping带来哪些好处 三、Entity Framework架构3.1 下图展示了Entity Framework的整体架构3.2 Entity Framew…...

使用CUDA 为Tegra构建OpenCV

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;MultiArch与Ubuntu/Debian 的交叉编译 下一篇&#xff1a;在iOS中安装 警告&#xff1a; 本教程可能包含过时的信息。 使用CUDA for Tegra 的OpenCV 本文档是构建支持 CUD…...

YoloV8改进策略:BackBone改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文,使用PKINet替代YoloV8的主干网络,实现涨点。PKINet是我在作者的模型基础上,重新修改了底层的模块,方便大家轻松移植到YoloV8上。 论文:《Poly Kernel Ince…...

如何在Linux系统部署Dupal CMS结合内网穿透实现无公网IP访问web界面

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&a…...

小巧玲珑的SQLite

SQLite是桌面端和移动端的不错选择 前言 SQLite身影无处不在。 SQLite&#xff0c;是一款轻型的数据库&#xff0c;是遵守ACID的关系型数据库管理系统&#xff0c;它的设计目标是嵌入式的&#xff0c;而且目前已经在很多嵌入式产品中使用了它&#xff0c;它占用资源非常的低&a…...

【Android 内存优化】 native内存泄漏监控方案源码分析

文章目录 前言使用效果使用apiJNI的动态注册native方法动态注册 hook的实现android_dlopen_ext和dl_iterate_phdr naive监控的实现nativeGetLeakAllocs 总结 前言 Android的native泄漏怎么检测&#xff1f;下面通过研究开源项目KOOM来一探究竟。 使用效果 未触发泄漏前的日志…...

数据结构 二叉树 力扣例题AC——代码以及思路记录

LCR 175. 计算二叉树的深 某公司架构以二叉树形式记录&#xff0c;请返回该公司的层级数。 AC int calculateDepth(struct TreeNode* root) {if (root NULL){return 0;}else{return 1 fmax(calculateDepth(root->left), calculateDepth(root->right));} } 代码思路 …...

Android 11系统启动流程

在Android 11系统启动流程中&#xff0c;系统启动主要经历了以下几个阶段&#xff1a; 引导加载程序&#xff08;Bootloader&#xff09;启动&#xff1a; 当设备加电后&#xff0c;首先运行的是ROM Bootloader&#xff0c;它负责验证操作系统映像的完整性、初始化基本硬件并加…...

python 爬取杭州小区挂牌均价

下载chrome驱动 通过chrome浏览器的 设置-帮助-关于Google Chrome 查看你所使用的Chrome版本 驱动可以从这两个地方找: 【推荐】https://storage.googleapis.com/chrome-for-testing-publichttp://npm.taobao.org/mirrors/chromedriver import zipfile import os import r…...

数据可视化-ECharts Html项目实战(3)

在之前的文章中&#xff0c;我们学习了如何创建堆积折线图&#xff0c;饼图以及较难的瀑布图并更改图标标题。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 …...

【理解机器学习算法】之Clustering算法(K-Means)

实现 K-means 聚类从零开始涉及几个关键步骤&#xff1a;初始化质心、将点分配给最近的质心、根据分配更新质心&#xff0c;以及重复这个过程直到收敛。这里是一个基本的 Python 实现&#xff1a; K-means 算法步骤&#xff1a; 初始化质心&#xff1a;从数据点中随机选择 k …...

Transformer的前世今生 day02(神经网络语言模型、词向量)

神经网络语言模型 使用神经网络的方法&#xff0c;去完成语言模型的两个问题&#xff0c;下图为两层感知机的神经网络语言模型&#xff1a; 假设词典V内有五个词&#xff1a;“判断”、“这个”、“词”、“的”、“词性”&#xff0c;且要输出P(w_next | “判断”、“这个”、…...

【Linux】多线程编程基础

&#x1f4bb;文章目录 &#x1f4c4;前言&#x1f33a;linux线程基础线程的概念线程的优缺点线程与进程的区别 线程的创建 &#x1f33b;linux线程冲突概念互斥锁函数介绍加锁的缺点 &#x1f4d3;总结 &#x1f4c4;前言 无论你是否为程序员&#xff0c;相信多线程这个词汇应…...

【地图】腾讯地图 - InfoWindow 自定义信息窗口内容时,内容 html 嵌套混乱问题

目录 需求描述问题问题代码页面展示 解决原因解决办法解决代码页面展示 代码汇总注 需求描述 腾讯地图上画点位&#xff0c;点击点位展示弹框信息 问题 问题代码 // 打开弹框 openInfoWindow(position, content) {this.infoWindow new TMap.InfoWindow({map: this.map,posit…...

Vue3、element-plus和Vue2、elementUI的一些转换

插槽 Vue3<template #default"scope"></template> <template #footer></template>Vue2<template slot-scope"scope"></template> <template slot"footer"></template>JS定义 Vue3 <script…...

Go语言gin框架中加载html/css/js等静态资源

Gin框架没有内置静态文件服务&#xff0c;但可以使用gin.Static或gin.StaticFS中间件来提供静态文件服务。 效果图如下&#xff1a; 一、gin 框架加载 Html 模板文件的方法 方式1&#xff1a;加载单个或多个html文件&#xff0c;需要指明具体文件名 r.LoadHTMLFiles("vie…...

哔哩下载姬DownKyi终极指南:3步轻松搞定B站高清视频下载

哔哩下载姬DownKyi终极指南&#xff1a;3步轻松搞定B站高清视频下载 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&…...

golang如何实现知识库问答系统_golang知识库问答系统实现实践

最省事的是 Qdrant 或 Milvus——二者均有官方 Go SDK&#xff0c;支持 HTTP/gRPC&#xff0c;文档完备&#xff1b;Qdrant 适合中小规模&#xff0c;Milvus 适合横向扩展&#xff0c;但需锁死 SDK 版本至 v2.4.5。用什么向量数据库搭配 Go 最省事Go 原生不带向量检索能力&…...

我好像会被 Agent 淘汰,我用数据算了一算饰

OCP原则 ocp指开闭原则&#xff0c;对扩展开放&#xff0c;对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则&#xff08;DIP&#xff09; 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程&#xff0c; 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

本地离线运行更安全!AI人脸隐私卫士,保护隐私无需上传云端

本地离线运行更安全&#xff01;AI人脸隐私卫士&#xff0c;保护隐私无需上传云端 在社交媒体分享、企业宣传、新闻报道等场景中&#xff0c;我们常常需要发布包含人物的照片。然而&#xff0c;未经处理的人脸信息一旦公开&#xff0c;就可能面临隐私泄露的风险。手动给照片中…...

TrackingNet在线评估全流程指南:从注册到结果查看(附常见问题解决)

TrackingNet在线评估全流程指南&#xff1a;从注册到结果查看&#xff08;附常见问题解决&#xff09; 在计算机视觉领域&#xff0c;目标跟踪算法的性能评估是研究过程中不可或缺的一环。TrackingNet作为业内广泛使用的基准测试平台&#xff0c;为研究人员提供了标准化的评估环…...

【实战】Streamlit搭建Python章节代码可视化系统

【实战】Streamlit搭建Python章节代码可视化系统 在日常学习和教学中&#xff0c;我们经常会遇到多章节代码文件管理的问题&#xff0c;手动切换文件夹、打开文件查看代码效率极低。本文将手把手教你用Streamlit快速搭建一个Python章节代码可视化系统&#xff0c;支持左侧章节…...

CNCjs高级配置技巧:从端口设置到远程访问

CNCjs高级配置技巧&#xff1a;从端口设置到远程访问 【免费下载链接】cncjs A web-based interface for CNC milling controller running Grbl, Marlin, Smoothieware, or TinyG. 项目地址: https://gitcode.com/gh_mirrors/cn/cncjs CNCjs是一款强大的基于Web的CNC控制…...

新手别怕!用嘉立创EDA两层板搞定ESP8266最小系统PCB(附完整工程文件)

从零开始&#xff1a;用嘉立创EDA轻松打造ESP8266最小系统PCB 第一次打开PCB设计软件时&#xff0c;那种手足无措的感觉我至今记忆犹新。密密麻麻的元件符号、复杂的布线规则、各种专业术语...作为一个刚接触硬件的爱好者&#xff0c;我曾一度怀疑自己是否真的能独立完成一块电…...

别再死记命令了!通过一个Packet Tracer静态路由实验,彻底搞懂‘下一跳’和‘出接口’的区别

别再死记命令了&#xff01;通过Packet Tracer实验彻底搞懂静态路由的“下一跳”与“出接口” 刚接触网络配置时&#xff0c;很多人会陷入一个误区&#xff1a;把静态路由的配置命令当作魔法咒语来记忆。直到某天&#xff0c;当网络拓扑发生变化&#xff0c;或者需要在不同场景…...

开源QMC解密工具深度解析:5分钟掌握音频格式转换核心技术

开源QMC解密工具深度解析&#xff1a;5分钟掌握音频格式转换核心技术 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 一键批量转换方法&#xff1a;跨平台音乐文件解锁方案…...