面試4:c++(數位物聯)

1.const 關健字的作用

定義常量,防止變量被意外修改,增強程序的可讀性和維護性。
可以用于指針,聲明指向常量的指針或常量指針。

2.static關健字的作用

(1)在函數內,用于修飾局部變量,使其生命周期延長到整個程序運行期間,且只初始化一次。
(2)用于修飾全局變量或函數,限制其作用域為本文件。

3.volatile關健字的作用

volatile關鍵字的作用:主要用于告訴編譯器,該變量可能會被意想不到地改變(例如由硬件、多線程等因素),防止編譯器進行過度的優化。

4.extern和volatile的作用域說明

extern的作用域通常是全局的,用于在一個文件中聲明在其他文件中定義的變量或函數;volatile的作用域主要是在具體使用它的變量的作用范圍內。

volatile應該是在編譯階段,extern在鏈接階段。

volatile關鍵字的作用是防止變量被編譯器優化,而優化是處于編譯階段,所以volatile關鍵字是在編譯階段起作用。

5.C++中的struct和class區別

默認的訪問控制不同,struct默認成員是公共的,class默認成員是私有的。
但在其他方面基本相同,都可以包含成員變量和成員函數。

6.C++中vector和list的區別

vector底層是連續存儲,隨機訪問效率高,但插入和刪除可能效率較低且可能引起大量元素移動;list是雙向鏈表,插入和刪除效率高,但隨機訪問效率低。
vector更適合頻繁隨機訪問的場景,list更適合頻繁插入刪除的場景。

7…要對絕對地址0x100000賦值1234,如何實現

錯誤,實現不了

#include <stdio.h>
#include <stdlib.h>int main()
{int a = 1234;int* p = &a;scanf("%p",&p);printf("&=%d\n",*p);return(0);
}

正確

#include <stdio.h>int main() {int *ptr = (int *)0x100000;*ptr = 1234;printf("賦值完成\n");return 0;
}

直接對絕對地址進行操作在實際編程中要謹慎使用,并且這種操作可能存在一定的風險和限制,具體取決于運行環境和系統權限等因素。

struct name1{
char str;short x;int num;};
求sizeof(name1) 
8
  1. 求函數返回值,
    傳入-1,則在64位機器上函數返回()
int func(int x)
{int count =0;while(x)  //while非0就是真{count++;x=x&(x-1); //與運算}
}return count;}

A死循環B:64C:32D:16

A

在 64 位機器上,對于有符號整數(如 int 類型):
其表示范圍通常是 -2^63 到 2^63 - 1。
即大致是 -9223372036854775808 到 9223372036854775807。
對于無符號整數(如 unsigned int 類型),表示范圍是 0 到 2^64 - 1。

-1 的二進制表示為所有位都是 1。在執行 x&(x-1) 操作時,每次會將最右邊的一個 1 變為 0,但因為初始的 x 是全 1,所以會不斷進行這個過程而無法使 x 變為 0 從而結束循環,因此函數不會返回一個確定的值,而是陷入死循環

  1. 求函數返回值
float a[3]={1.5,2.5,3.5};
*pa=a;
*(pa++)*=3;

,則*pa的值是()

A:1.5B:2.5C:3.5D:4.5

	B

初始時 pa 指向數組 a 的首元素,
執行 (pa++)=3 ,先進行 *(pa) 即 a[0] 的值乘以 3 ,此時 a[0] 變為 4.5 ,然后 pa 向后移動一個位置指向 a[1] 。
所以此時 *pa 的值就是 a[1] 的值,即 2.5 。

  1. 求函數返回值
#include <stdlib.h>int main()
{
int a[5][5];int(*p)[4];p=a;printf("%p,%d\n",&p[4][2]-&a[4][2],&p[4][2]-&a[4][2]);return 0;
}

在這里插入圖片描述
eg:原來:

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25

現在*p[4] ; p代表的是列數:p[4,2]

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
21 22 23 24
25

  1. 用C實現strstr,即在字符串中查找特定子串
#include <stdio.h>
#include <string.h>char *myStrStr(char *haystack, char *needle) {int haystackLen = strlen(haystack);int needleLen = strlen(needle);for (int i = 0; i <= haystackLen - needleLen; i++) {int j;for (j = 0; j < needleLen; j++) {if (haystack[i + j]!= needle[j]) {break;}}if (j == needleLen) {return haystack + i;}}return NULL;
}int main() {char str[] = "This is a test string";char subStr[] = "test";char *result = myStrStr(str, subStr);if (result) {printf("找到子串在: %s\n", result);} else {printf("未找到子串\n");}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23182.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23182.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23182.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mybatisplus多數據源內置方法報Invalid bound statement (not found)

在用mybatis-plus多數據源時用mapper內置的 selectList(queryWrapper) 查詢數據報org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 問題是在配置多數據源時用的是SqlSessionFactoryBean&#xff0c;改為MybatisSqlSessionFactoryBean即可…

Python怎么逐行處理文件:深度解析與實用技巧

Python怎么逐行處理文件&#xff1a;深度解析與實用技巧 在Python中&#xff0c;逐行處理文件是一項常見且重要的任務。無論是讀取大型日志文件、分析文本數據還是處理配置文件&#xff0c;逐行讀取都能幫助我們更有效地管理內存并提高處理速度。本文將詳細介紹Python中逐行處…

一文了解UVLED線光源的應用

在機器視覺系統中&#xff0c;光源作為不可或缺的一部分&#xff0c;能夠提高目標成像效果&#xff0c;增強檢測效果。光源的選擇至關重要&#xff0c;選到不合適的會影響成像及檢測效果。針對不同的檢測對象,不同的形狀光源應運而生。我們來看看最UVLED線光源。 下面以CCS的光…

某紅書旋轉滑塊驗證碼分析與協議算法實現

文章目錄 1. 寫在前面2. 接口分析3. 驗證軌跡4. 算法還原【??作者主頁】:吳秋霖 【??作者介紹】:擅長爬蟲與JS加密逆向分析!Python領域優質創作者、CSDN博客專家、阿里云博客專家、華為云享專家。一路走來長期堅守并致力于Python與爬蟲領域研究與開發工作! 【??作者推…

zoomeye api報錯 request invalid, validate usage and try again

項目場景&#xff1a; 調用zoomeye的api接口進行數據拿取 問題描述 之前接口一直通著今天突然報錯&#xff0c;以下為源代碼 pip install zoomeye from zoomeye.sdk import ZoomEye zm ZoomEye(api_key"34A8B452-D874-C63E0-8471-F3D4f89766f") zm.dork_search(a…

圖片像素縮放,支持個性化自定義與精準比例調整,讓圖像處理更輕松便捷!

圖片已經成為我們生活中不可或缺的一部分。無論是社交媒體的分享&#xff0c;還是工作文檔的編輯&#xff0c;圖片都扮演著至關重要的角色。然而&#xff0c;你是否曾經遇到過這樣的問題&#xff1a;一張高清大圖在上傳時卻受限于平臺的大小要求&#xff0c;或者一張小圖需要放…

Spring MVC 源碼分析之 DispatcherServlet#processDispatchResult方法

前言&#xff1a; 前面的篇章我們分析了 Spring MVC 工作流程中的 HandlerMapping、HandlerAdapter 的適配過程、攔截器的工作流程&#xff0c;以及處理業務請求的過程&#xff0c;本篇我們分析一下處理完業務解析視圖的方法&#xff0c;也就是 DispatcherServlet#processDisp…

提高篇(二):高級繪圖技巧:在Processing中創造精美圖形

提高篇(二):高級繪圖技巧:在Processing中創造精美圖形 引言 Processing不僅是一種編程語言,更是一個用于創意編程的強大工具。掌握高級繪圖技巧,可以讓你在藝術創作中如虎添翼。在本篇文章中,我們將探索貝塞爾曲線、樣條曲線、自定義形狀、圖形變換等高級繪圖技術,幫助…

tkinter+火山引擎+python實現語音識別聊天機器人

想要做一款能通過語音識別來聊天的智能機器人,首先需要能通過麥克風錄制語音進行識別轉換成文字,將文字發送給機器人得到聊天結果,并能將返回的文字轉換成語音進行合成,之后再通過本地播放語音實現語音交互。 架構: 實現步驟 一、本地錄音 本地錄音可以通過pyAudio庫實…

2024-06-05-記一次cnvd滲透

前言&#xff1a;挖src挖郁悶了&#xff0c;閑來無事選擇挖一個cnvd來練練手&#xff0c;本次的漏洞都沒啥難度&#xff0c;企查查資產過了5000萬 說一下cnvd證書的下放標準 對于中危及中危以上通用型漏洞&#xff08;CVSS2.0基準評分超過4.0分&#xff09;&#xff0c;以及涉…

Scaling vision Transformer 論文理解

Scaling vision Transformer 論文理解 1. 摘要2. 一些主要結論小結2.1 few shot transfer learning2.2 Pareto-front3. 討論3.1 Limitations3.2 社會作用4. 文章結論參考資料1. 摘要 Attention-based neural networks such as the Vision Transformer (ViT) have recently att…

valgrind-內存泄漏定位工具

1、前言 valgirnd 是一套開放源代碼的動態調試工具集合。能夠檢測內存管理錯誤&#xff0c;線程BUG等。valgirnd是由內核以及基于內核的其他調試工具組成。內核類似于一個框架&#xff0c;它模擬了一個cpu的環境&#xff0c;并提供服務給其他工具使用。而其他工具則類似于插件…

紅酒:紅酒保存中的光照與避免陽光直射

在紅酒保存中&#xff0c;光照是一個常常被忽視的因素。光照對紅酒的影響是不可小覷的&#xff0c;因為陽光中的紫外線會加速紅酒的氧化&#xff0c;導致其口感和品質的下降。因此&#xff0c;在保存云倉酒莊雷盛紅酒時&#xff0c;應特別注意避免陽光直射。 陽光直射對紅酒的影…

企業代碼簽名證書1300元

隨著手機和電腦等設備的普及&#xff0c;越來越多的開發者進入軟件行業&#xff0c;為了軟件的安全性、完整性和可信度&#xff0c;開發者往往會使用由正規CA認證機構頒發的代碼簽名證書對軟件代碼進行數字簽名&#xff0c;來標識軟件的來源和軟件開發者的真實身份。今天就隨SS…

AGI時代下,計算機專業出身的程序員該何去何從?

Easy&#xff1a;單獨開個貼說一下吧。 如果你計算機、軟件工程、通信、電子、網絡等相關專業本科畢業&#xff0c;也考慮前后端/測試崗&#xff0c;戳 技術大廠&#xff0c;6險1金&#xff0c;待遇不錯。 提前說明&#xff0c;一切以古代思維對AGI時代的推演&#xff0c;都是可…

博物館文物庫房管理軟件

博物館作為文化遺產的守護者和傳承者&#xff0c;承載著人類智慧與文明的結晶。在博物館的背后&#xff0c;一個龐大而嚴密的管理系統支撐著文物的保護與展示。而其中&#xff0c;文物庫房管理軟件的使用&#xff0c;無疑是一項重要的管理工具。 文物庫房管理軟件的功能具有多樣…

【CentOS 7】挑戰探索:在CentOS 7上實現Python 3.9的完美部署指南

【CentOS 7】挑戰探索&#xff1a;在CentOS 7上實現Python 3.9的完美部署指南 大家好 我是寸鐵&#x1f44a; 總結了一篇【CentOS 7】挑戰探索&#xff1a;在CentOS 7上實現Python 3.9的完美部署指南詳細步驟? 喜歡的小伙伴可以點點關注 &#x1f49d; 前言 此篇教程只適用于p…

【java前端課堂】05_類的多態

類的多態是面向對象編程的三大特性之一&#xff0c;與封裝和繼承并列。多態性允許我們將父對象設置為與其子對象相等的技術&#xff0c;讓我們可以把一個子對象當作父對象對待。在Java中&#xff0c;多態主要體現在以下三個方面&#xff1a; 方法的重載&#xff08;Overloadin…

【Mybatis】源碼分析-高級應用

1、Mybatis配置文件深入理解 1.2、動態SQL語句 Mybatis 的映射?件中&#xff0c;前?我們的 SQL 都是?較簡單的&#xff0c;有些時候業務邏輯復雜時&#xff0c;我們的 SQL是動態變化的&#xff0c;此時在前?的學習中我們的 SQL 就不能滿?要求了。 1.2.1、條件判斷 我們根…

技巧:合并ZIP分卷壓縮包

如果ZIP壓縮文件文件體積過大&#xff0c;大家可能會選擇“分卷壓縮”來壓縮ZIP文件&#xff0c;那么&#xff0c;如何合并zip分卷壓縮包呢&#xff1f;今天我們分享兩個ZIP分卷壓縮包合并的方法給大家。 方法一&#xff1a; 我們可以將分卷壓縮包&#xff0c;通過解壓的方式…