C++ 編程中常見問題與解決途徑

来源:https://www.cnblogs.com/h12l4/archive/2018/05/12/9029848.html
-Advertisement-
Play Games

摘要 :電腦技術的發展,推動了編程領域的發展,C++ 編程作為編程中應用最廣泛、最便捷、最簡明的一種編程語言, 通過它的應用能夠不斷提升編程質量。鑒於此,本文對變數命名、動態記憶體、概念混淆這三種 C++ 編程中常見問題與解決途徑進行集中的解決與分析。旨在為了不斷提升現今 C++ 編程程式的質量獻力 ...


 

 

 

摘要 :電腦技術的發展,推動了編程領域的發展C++ 編程作為編程中應用最廣泛、最便捷、最簡明的一種編程語言, 通過它的應用能夠不斷提升編程質量。鑒於此,本文對變數命名、動態記憶體、概念混淆這三種 C++ 編程中常見問題與解決途徑進行集中的解決與分析。旨在為了不斷提升現今 C++ 編程程式的質量獻力。

 

 

1 變數命名不當

問題表現 C++ 編程語言對於命名問題十分重視,尤其還對變數的命名,必須明確,其目的就是為了避免出現由於命名混亂導致的程式錯誤,影響程式的可讀性。關於變數命名問題,一般是出現在初學者在程式的編寫過程中容易出現的問題。

解決對策 :為了進一步解決新手在操作中出現這樣的問題,通過匈牙利表法能夠直接有效的通過用一個或者多個小寫字母對變數名進行命名,夾著在字母後面著名變數的意義, 就能夠按照隨附的字母進行排序,也能夠自符合 C++ 編程的變數要求。例如,以編程中三個變數為例,這三個變數分別 iValue1、iValue2、fResult,通過觀察命名就能知道命名所代表的變數意思。

首字母 i 就表示整個變數數據屬於整型變數數據,f 就表示整個變數數據屬於浮點型變數數據。所以能夠強襲準確的對這些變數數據進行辨別和確認。如果採用一般的命名法, 我們能夠區分 iValue1、iValue2 是具有相同屬性的兩個變數, 但是就很難理解 fResult 的類型關係。所以說利用匈牙利表示法,能夠有效的幫助新手在應用不熟練的情況下找到數據併進行下一步工作。

為了能幫助學習C/C++的伙伴,博主推薦一個學習交流qun  710 -520- 381 編號 靈狐 還有免費資料可以領取

2 動態記憶體問題

問題表現 :動態記憶體分配的問題,一直是 C++ 編程中經常出現的問題,在分析動態記憶體問題的表現形式以及解決方法之前,先要對動態記憶體分配的內涵有一定的瞭解。動態記憶體分配就是指程式執行的過程中動態的分配或者回收儲存空間,進行再分配。在編程中,經常會出現程式編寫人員為了節省空間記憶體,使用動態記憶體來儲存空間,最終由於操作不當,導致的動態分配的問題。這時,null 指針會進行接引操作, 對分配的記憶體進行越過邊界的處理,釋放非動態分配的記憶體、在什邡過程中經常是釋放了一部分但隨即就又被繼續使用。在傳遞的過程中,要求傳遞給 free 的指針必須從 malloc- calloc-realloc 函數再返還給指針。但是通過釋放非港台記憶體, 容易引起程式的終止或延遲終止。

解決對策

 

使用

 

 

 3 概念混淆使用問題

問題表現 :概念的混淆主要體現在對局部變數、全局變量、存儲類別的概念混淆。這三種概念都是 C++ 編程中經常出現的問題,對於初學者而言很難區分三者之間的關係。局部變數就是指在函數內部的定義,並旨在函數中能夠有效, 在應用中要註重,在 main 中定義的局部變數也只是在主函數有效,由於不同的函數不同,可以通過使用同名的局部變數, 只要局部變數只針對函數作用,就能夠互不幹擾。全局變數, 也就外部變數,顧名思義,就是與局部變數的內涵完全相反, 知識能夠應用在函數外部的變數。通過對整個程式的考慮, 由於外部變數空間占用記憶體較大,也要註重對其的應用,避免出新降低程式清晰度的問題。變數存儲類別,在整個程式中主要有三個存儲部分,分別是 :程式區、動態存儲區、靜態存儲區。

由於數據種類的不同,也要放在不同的存儲去進行存儲。其中變數存儲的只要是在動態存儲區和靜態存儲區之中。由於命名不同,例如,auto、extern、static 等。所以針對不同的命名就要選擇不同的存儲空間。

解決對策 :為了進一步解決概念混淆使用問題,主要就是掌握局部變數、全局變數、存儲類別的概念,進一步在進行存儲是,主張對變數性質的權衡。對於靜態局部變數,在函數調試之後,不釋放其占用的單元,在進行下一次函數的使用時,仍然可以對上次的數據進行再次使用數據,在靜態局部變數中通過函數的調試,這是其他函數不能夠比擬的。靜態全局變數,通過上文對全局變數含義的分析,靜態全局變數只能夠應用在本函數中。register 是能夠把作為一般變數進行儲存,在程式運行中需要時,由控制器該變數輸送在

CPU 運算器中,通過 CPU 的運算,再進行存儲。現在技術已經能夠將變數進行自行的發送,不需要指定即可。

4 結論

在這個過程中,C++ 編程中常見問題與解決途徑需要以變數命名、動態記憶體、概念混淆使用為依據,註意在進行編程中對常見問題綜合思考,是提高解決能力、促進 C++ 編程程式完善上升空間的有效舉措。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Layui 官網說這是款經典模塊化前端框架 個人覺得Layui很好用,容易上手。 在學習Layui的之前。先去官網下載必要的文件 將這些文件放入項目當中 然後可以到官網看一下示例。 可以做一個簡單的表格 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta char ...
  • 請點擊此處輸入圖片描述 Python下載知乎視頻。 # -*- coding: utf-8 -*- """ 下載知乎視頻: 依賴: pip install requests mac 安裝 ffmpeg: brew install ffmpeg """ import re import uuid im ...
  • 1.在file(文件)裡面找到setting(設置) 2. 然後再左面Editor裡面找Font,再到右面Size裡面設置字體大小 ...
  • 1、String s = new String("xyz");創建了幾個StringObject?是否可以繼承String類? 兩個或一個都有可能,”xyz”對應一個對象,這個對象放在字元串常量緩衝區,常量”xyz”不管出現多少遍,都是緩衝區中的那一個。NewString每寫一遍,就創建一個新的對象 ...
  • 目前想從事分散式服務中間件開發,包括Dubbo,MQ,Redis等,當然包括分散式存儲系統。 ...
  • 視頻 dubbo視頻 spring視頻 springcloud視頻 ...
  • 裝飾器的語法為 @dec_name ,置於函數定義之前。如: import atexit @atexit.register def goodbye(): print('Goodbye!') print('Script end here') atexit.register 是一個裝飾器,它的作用是將被 ...
  • 1. 網路:把雙方或者多方的設備(電腦,智能手機,ipad等)連接起來的一個工具 1.1 學習網路的目的: 通過網路把數據從一方傳遞到另外一方,完成數據的共用 2. ip地址 2.1: ip地址:標識網路中唯一的一臺設備 2.2. ip地址的作用:通過ip地址找到唯一的一臺設備,然後給設備發送數據 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...