研一寒假02-指針_new分配內存_使用new來創建動態數組_使用動態數組_使用delete來釋放new分配的內存...

#---------------------------------指針-----------------------------------#

#include <iostream>

int main()
{
using namespace std;


/* 指針引入 */
int updates = 6; //聲明一個變量
int* p_updates; //聲明一個指針p_updates,該指針指向一個地址
p_updates=&updates; //將updates的地址賦給p_updates

cout<<"Address:updates= "<<&updates<<endl; //顯示變量updates的地址
cout<<"Address:p_updates= "<<p_updates<<endl; //由于p_updates本身就是地址,所以此處不用再加地址符& 以上兩行顯示同一個地址

*p_updates=*p_updates+1; //指針(地址)p_updates所指向的值加1,*p_updates和updates是完全等價的.所以這一句將會修改指針p_updates指向的值updates
cout<<"Now updates= "<<updates<<endl; //此時updates的值為7
//int型變量updates和指針變量p_uodates只不過是同一枚硬幣的兩面,變量updates表示值,并使用&來獲取地址;而變量p_updates表示地址,并使用*來獲取值
//可以將值賦給*p_updates,這樣做將會修改指向的值,即updates


/* 指針聲明時的注意 */
int *p1; //可以這樣聲明
int* p2; //這樣也可以,int*是一種復合類型強調的是指向int的指針,在哪里添加空格對編譯器沒有任何區別
int* p3,p4; //聲明指針變量p1和int型變量p2

int higgens=5;
int* pt5 = &higgens; //在聲明中初始化指針


/* new分配內存 */
int* pt6; //聲明一個指針pt6
//pt6 = 0xB8000000; //在自己的理解中會認為0xB8000000是一個偏移地址,但是編譯器卻會認為這是一串數字,所以將數字賦給指針(地址)會報錯

//報錯解決方法一:使用強制轉換
pt6 = (int*)0xB8000000; //有效,使用int*進行強制轉換,將0xB8000000強制轉換為地址

//報錯解決方法二:使用new關鍵字去給指針分配內存地址
int* pt7 = new int; //new關鍵字的作用是在程序運行時,尋找一塊適合存儲int的內存,并返回一個地址賦給pt7*****
*pt7 = 1001; //有效,這樣就可以直接給*pt7直接賦數字值*****


/* 使用delete來釋放new分配的內存 所以new和delete必須是成對出現的 */
double* ps = new double;
*ps = 6;
delete ps; //釋放ps所指向的內存,但不會刪除指針,且只可釋放一次

int jugs=6; //有效,聲明一個int型變量jugs并賦初值
int* pq=&jugs; //有效,將jugs的地址賦給指針pq
//delete pq; //無效,delete是來釋放new分配的內存的


/* 使用new來創建動態數組 */
//靜態聯編:數組在編譯時加入到程序中,在編寫程序時候指定數組長度
//動態聯編:在程序運行階段,如果需要數組,則創建它;如果不需要則不創建;還可以在程序運行時選擇數組長度。這種數組被稱為動態數組

int* psome=new int [10]; //創建一個包含十個元素的動態數組,new返回數組第一個元素的地址并賦給psome
delete [] psome; //當程序使用new分配內存時,應使用delete來釋放內存,[]告訴程序應釋放整個數組
//當使用new時帶[],那么在使用delete時候也應使用[]
//當使用new時不帶[],那么在使用delete時候也應不使用[]


/* 使用動態數組 */
int* psome2=new int [10]; //創建包含十個元素的動態數組,psome2指向第一個元素的地址
cout<<psome[0]<<endl; //輸出動態數組的第一個元素
cout<<psome[1]<<endl; //輸出動態數組的第二個元素
cout<<psome[2]<<endl; //輸出動態數組的第三個元素

double* pw = new double [3]; //創建包含三個元素的動態數組
pw[0]=0.12;
pw[1]=0.22;
pw[3]=0.32;
cout<<"pw[1] is "<<pw[1]<<endl; //輸出pw[1] is 0.22
pw = pw+1; //在未執行該句之前,pw指向第一個元素的地址,執行此句后pw將指向下一個元素的地址;此時pw不再執行數組第一個元素的地址,而是指向數組第二個元素的地址
cout<<"pw[0] is "<<pw[0]<<endl; //輸出pw[1] is 0.22
cout<<"pw[1] is "<<pw[1]<<endl; //輸出pw[1] is 0.32
pw=pw-1; //恢復原來的值
delete [] pw; //釋放pw所指向的內存

//由于直接定義的數組中數組名只是一個名字,不可以進行加減運算,但是指針是變量,就可以修改它的值
//比如下面的語句是錯誤的
//int sw[10]; //有效 定義一個數組
//sw=sw+1; //無效
}

?

最后編輯于 2019.02.17 18:33 haijing in hz miss my family

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/YiYA-blog/p/10458513.html

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

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

相關文章

利用Windows內置工具winsat測試硬盤速度(SSD機械盤對比)

利用Windows內置工具winsat測試硬盤速度&#xff08;SSD&機械盤對比&#xff09; 以下是紅色內容是在命令行運行&#xff1a; C:\Users\Administrator>winsat diskWindows 系統評估工具> 正在運行: 功能枚舉 > 運行時間 00:00:00.00> 正在運行: 存儲評估 -seq …

我為何在 CSDN 樂在其中

文章目錄寫在前面成為博主究竟能得到什么&#xff1f;內在提升耀眼名片豐富眼界提升知名度博客》變現寫在最后寫在前面 各位伙伴大家好&#xff0c;我是幾何心涼&#xff0c;一位不是很大的也不是很小的博主&#xff0c;今天想要跟大家去聊一些比較實在的內容&#xff1b;大家能…

EFLinq查詢

1、無參數查詢var model db.Database.SqlQuery<UserInfo>("select* from UserInfoes ").ToList(); 2、有參查詢var model db.Database.SqlQuery<UserInfo>("select* from UserInfoes where idID ",new SqlParameter("ID",id)).ToL…

實現div可以調整高度(div實現resize)

實現div可以調整高度&#xff08;div實現resize&#xff09; 一、div 實現resize&#xff08;類似textarea&#xff09; 代碼如下&#xff1a; <!DOCTYPE html> <html><head><title>div實現textarea效果</title><style>#textarea {height:…

10分鐘設置免費遠程桌面

文章目錄前言遠程桌面設置教程啟動Amazon Lightsail實例配置遠程桌面啟動遠程桌面使用遠程桌面前言 “你見過洛杉磯凌晨4點的樣子嗎&#xff1f;” 沒有也沒關系&#xff0c;你可以輕松配置一臺位于洛杉磯的免費遠程桌面。 利用Amazon全球可用區&#xff0c;甚至可以在世界各…

樹莓派-開啟spi

1. sudo raspi-config #進入樹莓派配置頁 2. #進入每5項&#xff0c;進入啟用spi即可 轉載于:https://www.cnblogs.com/lobin/p/10459076.html

Lucene全文檢索過程

1. 索引過程&#xff1a; 1) 有一系列被索引文件 2) 被索引文件經過語法分析和語言處理形成一系列詞(Term)。 3) 經過索引創建形成詞典和反向索引表。 4) 通過索引存儲將索引寫入硬盤。 2. 搜索過程&#xff1a; 1) 用戶輸入查詢語句。 2) 對查詢語句經過語法分析和語言分析得到…

tcpdump 用法

原文鏈接 本文原文來自&#xff1a; A tcpdump Tutorial with Examples — 50 Ways to Isolate Traffic TCPDUMP 簡介 TCPDUMP 在一個界面中既提供了強大的功能又簡單易用&#xff0c;無疑已經是網絡分析工具中的老大。 本教程將介紹如何以各種方式隔離流量&#xff1a;從IP&am…

網絡端

1.synchronized 同步鎖 同步方法: 成員|靜態 簡單,但是鎖的范圍一般可能較大,效率低 同步塊 類的class:相當于鎖了類的整個信息|所有對象 this:鎖當前對象,鎖了這個對象的所有資源 資源:一般鎖不變的內容--對象地址 鎖的范圍太大效率低,鎖的范圍太小可能鎖不住 鎖一定要鎖不變的…

BZOJ2690: 字符串游戲(平衡樹動態維護Dfs序)

Description 給定N個僅有a~z組成的字符串ai,每個字符串都有一個權值vi,有M次操作&#xff0c;操作分三種&#xff1a;Cv x v:把第x個字符串的權值修改為vCs x a:把第x個字符串修改成aQ:求出當前的最大權字符串集合&#xff0c;使得這個集合中的字符串經過重新排列后滿足除最后一…

【第一趴】初探uni-app(uni-app發行者、uni-app推出背景、為什么選擇uni-app)

文章目錄寫在前面DCloud當下跨平臺開發存在的問題為什么選擇uni-app寫在最后寫在前面 聚沙成塔——每天進步一點點&#xff0c;大家好我是幾何心涼&#xff0c;不難發現越來越多的前端招聘JD中都加入了uni-app 這一項&#xff0c;它也已經成為前端開發者不可或缺的一項技能了&…

Rocket - tilelink - Atomics

https://mp.weixin.qq.com/s/TSwKL_qm-b-0e8x7r--hhg 簡單介紹Atomics中數學運算、邏輯運算的實現。??1. ioAtomics是一個硬件模塊&#xff0c;他繼承自Modules&#xff1a;??IO端口定義如下&#xff1a;??其中&#xff1a;a. write: 是否寫操作&#xff1b;b. a&#xf…

Spark streaming java代碼

待做轉載于:https://www.cnblogs.com/drjava/p/10464388.html

【第二趴】uni-app開發工具(手把手帶你安裝HBuilderX、搭建第一個多端項目初體驗)

文章目錄 寫在前面HBuilderXHBuilderX 優勢HBuilderX 安裝uni-app 初體驗寫在最后寫在前面 聚沙成塔——每天進步一點點,大家好我是幾何心涼,不難發現越來越多的前端招聘JD中都加入了uni-app 這一項,它也已經成為前端開發者不可或缺的一項技能了,所以涼哥為大家推出 聚沙成…

“勤學會”火爆來襲

文章目錄勤學會是什么&#xff1f;勤學會存在的意義是什么強大的助學團勤學會如何幫助大家學習參與勤學會能得什么獎品專屬C計劃加入勤學會勤學會是什么&#xff1f; 他來了他來了&#xff0c;其實兩個月前勤學會的概念產品就已經出現了&#xff0c;只不過因為了 1024 大型活動…

LeetCode -- 204. Count Primes

題目標簽 HashTab&#xff08;哈希表&#xff09; 題意及思路 題意&#xff1a;略 思路&#xff1a;有關素數的題目我所知道有兩種做法。一種是最基本的isPrime算法&#xff0c;關鍵點在循環判斷時&#xff0c;上限為Math.sqrt(n) &#xff08;求n是否為素數&#xff09;。另外…

如何尋找無序數組中的第K大元素?

如何尋找無序數組中的第K大元素&#xff1f; 有這樣一個算法題&#xff1a;有一個無序數組&#xff0c;要求找出數組中的第K大元素。比如給定的無序數組如下所示&#xff1a; 如果k6&#xff0c;也就是要尋找第6大的元素&#xff0c;很顯然&#xff0c;數組中第一大元素是24&am…

【第三趴】uni-app頁面搭建與路由配置(了解工程目錄結構、學會搭建頁面、配置路由并成功運行)

文章目錄 寫在前面工程結構新頁面呈現寫在最后本期推薦寫在前面 聚沙成塔——每天進步一點點,大家好我是幾何心涼,不難發現越來越多的前端招聘JD中都加入了uni-app 這一項,它也已經成為前端開發者不可或缺的一項技能了,所以涼哥為大家推出 聚沙成塔【45天玩轉uni-app】專欄…

測試MongoDB的自動分片

MongoDB的自動分片&#xff1a; test庫分片配置&#xff1a; db.shards.find(){ "_id" : "shard0000", "host" : "127.0.0.1:29017", "state" : 1 }{ "_id" : "shard0001", "host" : "1…

線上CPU飚高(死循環,死鎖……)?幫你迅速定位代碼位置

top基本使用&#xff1a; top命令參考本篇文章 查看內存和CPU的top命令&#xff0c;別看輸出一大堆&#xff0c;理解了其實很簡單 top 命令運行圖&#xff1a; 第一行&#xff1a;基本信息 第二行&#xff1a;任務信息 第三行&#xff1a;CPU使用情況 第四行&#xff1a;物理內…