從零開始的c語言日記day36——指針進階

一、什么是指針:

指針的概念:1.指針就是個變量,用來存放地址,地址唯一標識一塊內存空間。

⒉指針的大小是固定的4/8個字節(32位平臺/64位平臺)。

  1. 指針是有類型,指針的類型決定了指針的+-整數的步長,指針解引用操作的時候的權限。4.指針的運算。

  • 字符指針

用字符指針吧ch值改掉。

下面這段程序不能理解為p里放了一個字符串,應該理解把字符串首字符a的地址,賦給了p。%s打印字符串從第一個字符開始一直到斜杠0結束

Abcdef/0為常量字符串,并且前面加了const為不可修改狀態。所以在內存中只需要存和一份就夠了,因為他都已經不可修改了自然是大家都要用這個內容所以才不可修改。所以p1和p2為相同的,打印p1==p2

而第二種是數組類型,因為數組需要向內存申請空間來儲存數組里面的元素,所以每用一次都需要申請一次空間,自然arr1和arr2的地址不一樣了。

  • 指針數組

顧名思義就是用來存放指針的數組

Int arr[10]整形數組每個元素為【int int int int int int int int int int 】

Char ch[5]字符數組 ??????????【char ?char ?char ?char ?char ??】

Int* arr2[5]存放整形指針的數組【int* ?int* ?int* ?int* ?int* ?】

Char* arr [ 5]存放字符指針的數組【char* ?char* ?char* ?char* ?char* ?】

Parr【】里存了3個數組的首元素地址,當每一個循環則換到下一個元素即數組地址,打印的時候解引用就打印出元素了

  • 數組指針

數組指針的定義

數組指針是指針?還是數組?答案是:指針。

整形指針: int * pint;能夠指向整形數據的指針。浮點型指針:float * pf;能夠指向浮點型數據的指針。那數組指針應該是:能夠指向數組的指針。

數組指針——指針——指向數組的指針

整型指針——指向整型的指針

int*

字符指針——指向字符的指針

&數組名和數組名

此程序不能把數組名理解為首元素地址,因為如果是首元素地址的話sz計算應該是這個地址的大小,但實際結果不是。

  1. 數組名通常表示的都是數組首元素的地址,但是有兩點例外,sizeof(數組名)這里的數組名表示整個數組的大小
  2. &數組名,這里的數組名依然表示整個數組,所以&數組名取出的是整個數組的地址。從表面意義上來講取出的地址是一樣的,但是數組總要有個地址所以數組的地址和數組首元素的地址是一個相同的地址,但他們的本質不一樣

如果都給他們+1會怎樣

可以看到第大一段和第二大段的結果是一樣的,arr表示首元素的地址那么首元素地址為int*類型,int*指針如果+1就是跳過4個字節。

第二段同理,因為兩端程序地址是一樣的

但是第三大端則是直接跳過了40個字節是整個數組的字節

怎么讓數組指針存放數組的地址?數組的地址也是地址,地址就應該存在指針變量里,所以數組指針就是存放數組的地址,(*p2)就是指針了,而且指向數組,數組里有10個元素所以為[10]。那么存的元素是什么類型,為int類型所以最后的格式為int (*p2)[10]=&arr

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

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

相關文章

嵌入式面經-python相關問題

1、c\cpp\python 區別,各自優缺點? 2、python是怎么處理 深拷貝和淺拷貝的? 3、python的多線程 多進程 4、用過python哪些庫

玻璃加工ERP包含些模塊?玻璃加工ERP好用嗎

玻璃制品的類型多、規格不一、營銷策略靈活、銷售渠道廣泛、生產關聯業務環節。在當今這個市場競爭日益激烈的時代,如何有效整合各個業務環節,提升多部門協作效率,隨時進行數據分析等,是每個玻璃加工企業面臨的管理難題。 在數字…

【C語法學習】27 - 字符串轉換為數字

文章目錄 1 atoi()函數1.1 函數原型1.2 參數1.3 返回值1.4 轉換機制1.5 示例1.5.1 示例1 1 atoi()函數 1.1 函數原型 atoi():將str指向的字符串轉換為整數,函數原型如下: int atoi(const char *str);1.2 參數 atoi()函數只有一個參數str&…

docker部署paddleocr

內容僅供參考學習 歡迎朋友們V一起交流: zcxl7_7 環境 1. CentOS7 ?2. docker ?3. PaddleOCR2.5.2 1.準備 1. 首先準備好需要打包的項目 2. 在該項目中創建Dockerfile文件 touch Dockerfile2. 編寫Dockerfile # 從Python 3.8的官方鏡像中創建(pyt…

建立簡單的客戶端-服務端通信系統

本文介紹如何使用C編寫一個基本的客戶端-服務端通信系統。通過這個例子&#xff0c;你將學到如何建立TCP連接、發送和接收消息&#xff0c;以及如何處理多個客戶端連接。 客戶端代碼&#xff1a; #include <stdio.h> // 標準輸入輸出庫&#xff0c;提供基本的輸入…

matlab使用scatter函數畫圖時報錯“數組索引必須為正整數或邏輯值”解決辦法

一、背景 在使用matlab的scatter函數畫圖時報錯“數組索引必須為正整數或邏輯值”。 scatter函數說明&#xff1a;scatter(x,y) 在向量 x 和 y 指定的位置創建一個包含圓形標記的散點圖。 二、解決辦法 如果使用scatter函數時報上述錯誤&#xff0c;嘗試將連續函數先轉換為函…

ubuntu編譯sqlite3并使用

SQLite3是一種輕量級的關系型數據庫管理系統&#xff0c;它是在C語言基礎上實現的。SQLite3具有許多優點&#xff0c;例如&#xff1a; 1.靈活&#xff1a;它可以在多種操作系統上運行&#xff0c;并且可以將多個數據庫文件合并成一個文件。 2.易于使用&#xff1a;SQLite3使用…

基于爬行動物算法優化概率神經網絡PNN的分類預測 - 附代碼

基于爬行動物算法優化概率神經網絡PNN的分類預測 - 附代碼 文章目錄 基于爬行動物算法優化概率神經網絡PNN的分類預測 - 附代碼1.PNN網絡概述2.變壓器故障診街系統相關背景2.1 模型建立 3.基于爬行動物優化的PNN網絡5.測試結果6.參考文獻7.Matlab代碼 摘要&#xff1a;針對PNN神…

八股文面試day6

什么是代理&#xff1f;為什么要用動態代理&#xff1f; 代理模式大概意思是&#xff1a;為其他對象提供一個代理項或者是占位符&#xff0c;以控制對這個對象的訪問 代理模式核心思想&#xff1a;創建一個代理對象&#xff0c;在客戶端和目標對象之間的一個中介&#xff0c;…

35的程序員被辭了可以自己接外包啊?為什么都那么悲觀呢?

35的年紀&#xff0c;上有老下有小&#xff0c;即將步入中年危機&#xff0c;在這個節骨眼上被辭&#xff0c;能不悲觀嗎&#xff1f; 在這個年紀人們往往追求的是穩定的工作和生活&#xff0c;而進入一個自己不熟悉的行業并不是一個好的選擇。 況且&#xff0c;你認為的外包…

診斷0x27服務解密文件DLL制作與使用

DLL文件在CANoe的使用方法 DLL文件在診斷里面可以用在0x27秘鑰服務里面&#xff0c;對解密有幫助&#xff0c;在下圖位置加載。 DLL文件制作 vector公司本來就給了我們一個demo&#xff0c;先拷貝一份下來&#xff0c;別把原來的文件給改壞了。我這個是CANoe12&#xff0c;de…

Visio給立方體的每條邊填充不同的顏色,超好用的visio小技巧~

Visio給立方體的每條邊填充不同的顏色&#xff0c;超好用的visio小技巧~ 如何實現立方體的填充顏色從左邊的純色到右邊的多色呢&#xff1f;一起學起來吧~ 在visio中繪制一個普通的立方體&#xff1b; 用一個大的矩形蓋住剛才繪制的立方體&#xff1b; 全選之后找到 開發工具-&…

matplotlib

設置中文字體&#xff0c;圖片大小&#xff0c;分辨率&#xff0c;中文負號 符號 x軸和y軸 設置x軸和y軸的刻度 字體大小 線條樣式 繪制多個線條 圖例 顯示每個坐標值 gca 分辨率 畫布尺寸 創建圖形對象 不能直接使用區域對象作畫 繪制多子圖 均等的劃分畫布 柱狀圖 同一位置多…

Python 讀取2進制bin文件

pip下載hexdump pip install hexdump讀取bin文件 python -m hexdump xxx.bin

HTTP/HTTPS

HTTP/HTTPS 簡介 HTTP 協議是 Hyper Text Transfer Protocol&#xff08;超文本傳輸協議&#xff09;的縮寫&#xff0c;是用于從萬維網&#xff08; WWW:World Wide Web &#xff09;服務器傳輸超文本到本地瀏覽器的傳送協議。 HTTP 是一個基于 TCP/IP 通信協議來傳遞數據&a…

最新版車牌號正則效驗

支持最新版新能源、各類特種車等車牌號規則效驗 private static final Pattern pattern Pattern.compile("^([京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[a-zA-Z](([京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊AB…

類加載過程

Java類加載過程包括加載&#xff08;Loading&#xff09;、驗證&#xff08;Verification&#xff09;、準備&#xff08;Preparation&#xff09;、解析&#xff08;Resolution&#xff09;、初始化&#xff08;Initialization&#xff09;五個階段。這些階段是按照順序逐步執…

Javascript中的宏任務與微任務

事件循環 JavaScript 語言的一大特點就是單線程&#xff0c;也就是說&#xff0c;同一個時間只能做一件事。為了協調事件、用戶交互、腳本、UI 渲染和網絡處理等行為&#xff0c;防止主線程的不阻塞&#xff0c;Event Loop 的方案應用而生。Event Loop 包含兩類&#xff1a;一…

購買Zoho CRM系統要花多少錢?

相信對CRM系統有過了解的人都知道&#xff0c;CRM系統的價格取決于功能需求&#xff0c;用戶數量&#xff0c;部署方式&#xff0c;定制開發等因素。Zoho CRM是全球領先的云CRM系統&#xff0c;自2005年推出以來&#xff0c;累計服務25萬企業&#xff0c;那么Zoho CRM系統的價格…

python批量修改文件夾下的后綴名

python批量修改文件夾下的后綴名 &#xff08;所有的.txt結尾的文件&#xff0c;替換成.py結尾&#xff09; 1、需要將某個文件夾下所有的.txt結尾的文件&#xff0c;替換成.py結尾 2、Python代碼&#xff1a; import os# 指定需要更改文件的目錄 dir_path D:/study/py/4#…