數學系C++(六七)

目錄

* &指針與地址

void指針

指針可以等于:

const

指向常量的指針 const int *px

常指針 int * const px

指向常量的常指針const 類型標識符 * const 指針名

指針加減:

指針恒等式

函數×指針【待續】

指針型函數:

指向函數的指針:指向函數存儲的首地址

引用與指針

內存分配【待續】

輸入出


* &指針與地址

聲明指針:int *px ;

給指針賦值:int x;px=&x; (指針的變量名只能等于地址,*表示取后面地址指向的值)

等價:x=3? 《=》 *px=3(*+地址 也可以改變 地址所指向的值)

void指針

void 類型的指針

? void 類型的指針可以存放任何類型數據的地址,即指向任何類型的對象

? 不允許直接通過 void 指針來訪問其目標對象!

? 若需訪問 void 類型指針的目標對象,必須通過顯式類型轉換指明目標對象的類型

指針可以等于:

? 指針可能的取值

(1) 空指針:0, NULL 或值為 0, NULL 的常量

(2) 類型匹配的對象的地址

(3) 同類型的另一有效指針

(4) 類型匹配的對象的前、后地址(相對位置)

int x[3] = {1,2,3};int * px = &x[0];int * py = &x+1;

int * pz;pz = 0; // OK

pz = NULL; // OK

沒有初始化或賦值的指針是無效的指針;引用無效指針會帶來難以預料的問題!?

const

指向常量的指針 const int *px

const 類型標識符 * 指針名

const對象只能使用const指針

const指針可以指向非const對象

但是修改非const對象的值不能通過const指針進行修改

常指針 int * const px

類型標識符 * const 指針名

px一旦賦值,就不能修改

int * const px=a;就不能再px=b了

指向常量的常指針const 類型標識符 * const 指針名

指針不能改,也不能通過指針改變量值

指針加減:

每次運算? :1=1*每個變量所占空間

指針恒等式

int a【n】;int *pa=a;

2dim:

指針p

函數×指針【待續】

以地址方式傳遞數據,形參和實參指向共同的內存地址,是同一個數據

形參是指針時,實參可以是指針或地址

可以傳遞函數代碼的首地址,即將函數作為參數

函數間需要傳遞大量數據(數組)時,通常是利用指針傳遞數據的首地址?

指針型函數:

返回值為【全局變量的】指針or【全局變量的】地址

指向函數的指針:指向函數存儲的首地址

int Gcd(int x, int y);
int Lcm(int x, int y);
int (* pf)(int, int); // 聲明函數指針
pf=Gcd; // pf 指向函數 
Gcdcout << "最大公約數:" << pf(a,b) << endl;

?可以象使用函數名一樣使用函數指針

引用與指針

? 引用是變量的別名,只針對變量,函數沒有引用

? 引用必須初始化,且不能修改

? 用引用能實現的功能,用指針都能實現

? 傳遞大量數據時(數組),建議使用指針

int a = 3;
int * pa = &a; // 指針
int & ra = a; // 引用(取別名)

內存分配【待續】

new

delete,new完了一定要delete

引用和指針有何區別?

給指針賦值=地址,引用賦值=自身

改變變量:*pa=5《=》&pa=5?

初始化是不同的:

引用是一個變量的別名,它必須在定義時初始化,并且一旦初始化之后就不能再指向其他變量。
指針是一個變量,用來存儲另一個變量的地址。指針可以在任何時候被重新賦值,以指向不同的變量

-----------------------------以上為第六講。

輸入出

文件輸入出等——————————以上為第七講。

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

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

相關文章

大數據之路 讀書筆記 Day4 數據同步

回顧&#xff1a; Day 3 總結了無限客戶端的日志采集 大數據之路 讀書筆記 Day 3Day 2總結了瀏覽器端的日志采集 大數據之路 讀書筆記 Day 2 數據同步 阿里數據體系中的數據同步&#xff0c;主要指的是在不同的數據存儲系統之間進行數據的傳輸與更新&#xff0c;以保證數據的一…

【代碼隨想錄_Day26】56 合并區間 738 單調遞增的數字

Day26 OK&#xff0c;今日份的打卡&#xff01;第二十六天 以下是今日份的總結合并區間單調遞增的數字 以下是今日份的總結 56 合并區間 738 單調遞增的數字 今天的題目難度不低&#xff0c;盡量還是寫一些簡潔代碼 ^?_?^ 合并區間 思路&#xff1a; 先排序&#xff0c;按…

reactor和proactor模型

Reactor模型是非阻塞的同步IO模型。在主線程中也就是IO處理單元中&#xff0c;只負責監聽文件描述符上是否有事件發生&#xff0c;有的話就立即將事件通知工作線程&#xff0c;將socket可讀可寫事件放入請求隊列&#xff0c;交給工作線程處理。 總而言之就是主線程監聽有事件發…

apk反編譯修改教程系列-----修改apk 解除軟件限制功能 實例操作步驟解析_3【二十二】

在前面的幾期博文中有過解析去除apk中功能權限的反編譯步驟。另外在以往博文中也列舉了修改apk中選項功能權限的操作方法。今天以另外一款apk作為演示修改反編譯去除軟件功能限制的步驟。興趣的友友可以參考其中的修改過程。 課程的目的是了解apk中各個文件的具體作用以及簡單…

debain系統使用日志

賬號 vboxuser changeme ssh遠程登錄vbox虛擬機 https://www.cnblogs.com/BuzzWeek/p/17557981.html Terminal su - root changeme sudo apt-get update sudo apt-get -y install openssh-server #啟動sshd systemctl status sshd 設置允許ssh登錄vbox虛擬機 參考&#xf…

【密碼學】什么是密碼?什么是密碼學?

一、密碼的定義 根據《中華人民共和國密碼法》對密碼的定義如下&#xff1a; 密碼是指采用特定變換的方法對信息等進行加密保護、安全認證的技術、產品和服務。 二、密碼學的定義 密碼學是研究編制密碼和破譯密碼的技術科學。由定義可以知道密碼學分為兩個主要分支&#x…

69.WEB滲透測試-信息收集- WAF、框架組件識別(9)

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a; 易錦網校會員專享課 上一個內容&#xff1a;68.WEB滲透測試-信息收集- WAF、框架組件識別&#xff08;8&#xff09; 有無waf存在&am…

GESP C++一級真題

PDF圖片1-7 點贊??關注&#x1f60d;收藏?? 互粉必回&#x1f64f;&#x1f64f;&#x1f64f;

DPDK源碼分析之(1)libmbuf模塊

DPDK源碼分析之(1)libmbuf模塊 Author&#xff1a;OnceDay Date&#xff1a;2024年7月2日 漫漫長路&#xff0c;有人對你笑過嘛… 全系列文檔可參考專欄&#xff1a;源碼分析_Once-Day的博客-CSDN博客 參考文檔&#xff1a; DPDK downloadGetting Started Guide for Linux…

JAVA中的for-each(增強型for循環)

Java 8及之后的版本中與for-each循環&#xff08;也稱為增強型for循環&#xff09;和數組處理結合使用時&#xff0c;它可能類似于Lambda表達式或流&#xff08;Stream&#xff09;API中的上下文。 舉例&#xff1a; public class ArrLength {public static void main(String…

CGAL計算凸包(OSG進行可視化)

目錄 一、什么是凸包 二、運行步驟 1、安裝依賴項 2、編譯osg庫 3、運行代碼 4、運行截圖 一、什么是凸包 凸包是計算幾何中的一個基本概念,用來描述一個點集的最小凸包圍形。具體來說,給定一個點集,凸包是包含該點集的最小凸多邊形或凸多面體。 二維凸包:在二維平面…

迭代器模式在金融業務中的應用及其框架實現

引言 迭代器模式&#xff08;Iterator Pattern&#xff09;是一種行為設計模式&#xff0c;它提供了一種方法順序訪問一個聚合對象中的各個元素&#xff0c;而又不需要暴露該對象的內部表示。在金融業務中&#xff0c;迭代器模式可以用于遍歷復雜的數據結構&#xff0c;如交易…

算法-常見數據結構設計

文章目錄 1. 帶有setAll功能的哈希表2. LRU緩存結構3. O(1)時間插入刪除隨機(去重)4. O(1)時間插入刪除隨機(不去重)5. 快速獲取數據流中的中位數6. 最大頻率棧7. 全O(1)結構8. LFU緩存結構 本節的內容比較難, 大多是leetcodeHard難度級別的題目 1. 帶有setAll功能的哈希表 哈希…

js計算兩個日期直接的間隔天,2018/12/14到2017/11/10有多少天

const startDate new Date(2017-11-10)const endDate new Date(2018-12-14)const diffTime Math.abs(endDate - startDate)const diffDays Math.ceil(diffTime / (1000 * 60 * 60 * 24))console.log(diffDays) // 輸出天數差 人工智能學習網站 https://chat.xutongbao.top…

解析Java中1000個常用類:DoubleSummaryStatistics類,你學會了嗎?

在線工具站 推薦一個程序員在線工具站:程序員常用工具(http://cxytools.com),有時間戳、JSON格式化、文本對比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。程序員資料站 推薦一個程序員編程資料站:程序員的成長之路(http://cxyroad.com),收錄了一些列的技術教程…

VSCode神仙插件——Codeium (AI編程助手)

1、安裝&登錄插件 安裝過程中會讓你登錄Codeium賬戶&#xff0c;可以通過Google賬戶登錄&#xff0c;或者可以注冊一個Codeium賬戶&#xff08;如果沒有彈出讓你登錄賬戶的界面&#xff0c;可以等安裝結束后在右下角找到登錄的地方&#xff09; 右下角顯示如下圖所示&#…

【ubuntu中關于驅動得問題】—— 如何將nouveau驅動程序加入黑名單和安裝NVIDIA顯卡驅動

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、nouveau驅動程序加入黑名單二、安裝NVIDIA顯卡驅動總結 前言 NVIDIA顯卡驅動是用于支持和優化NVIDIA顯卡在計算機系統中運行的關鍵軟件組件。該驅動程序能…

【每日一練】python算數練習題(函數.隨機.判斷綜合運用)

""" 幼兒園加減法練習題 答對點贊表情&#xff0c;答錯炸彈表情 表情隨機出現 如果全答對有大獎 """ import random df0 #定義答對函數 def dd():global dfdf10bq["&#x1f339;&#x1f339;&#x1f339;","&#x1f389;&…

(接上一篇)前端弄一個變量實現點擊次數在前端頁面實時更新

實現點擊次數在前端頁面實時更新&#xff0c;確實需要在前端維護一個變量來存儲當前的點擊次數。這個變量通常在Vue組件的data選項中定義&#xff0c;并在組件的生命周期方法或事件處理函數中更新。 以下是實現這一功能的基本步驟&#xff1a; 定義變量&#xff1a;在Vue組件的…

系統測試-測試方法學習

目錄 &#xff08;1&#xff09;等價類 &#xff08;2&#xff09;邊界值 &#xff08;3&#xff09;正交&#xff1a;&#xff08;只用于確定排列組合&#xff0c;不確定具體內容&#xff09; (4)判定表法 &#xff08;5&#xff09;流程分析法 &#xff08;6&#xff0…