【C語言練習】015. 聲明和初始化指針

015. 聲明和初始化指針

  • 015. 聲明和初始化指針
    • 1. 聲明指針
      • 示例1:聲明一個指向整數的指針
    • 2. 初始化指針
      • 示例2:將指針初始化為`NULL`
      • 示例3:將指針初始化為某個變量的地址
      • 示例4:將指針初始化為動態分配的內存地址
    • 3. 使用指針訪問和修改變量的值
      • 示例5:使用指針訪問和修改變量的值
      • 輸出結果
    • 4. 指針的指針
      • 示例6:指針的指針
      • 輸出結果
    • 5. 指針數組
      • 示例7:指針數組
      • 輸出結果
    • 6. 動態分配的指針數組
      • 示例8:動態分配的指針數組
      • 輸出結果

015. 聲明和初始化指針

在C語言中,指針是一種特殊的變量,用于存儲另一個變量的內存地址。聲明和初始化指針是C語言編程中的重要概念。以下將詳細介紹如何聲明和初始化指針,以及如何使用指針訪問和修改變量的值。

1. 聲明指針

聲明指針時,需要指定指針所指向的變量類型。指針的聲明格式如下:

類型 *指針變量名;

示例1:聲明一個指向整數的指針

int *ptr; // 聲明一個指向整數的指針

2. 初始化指針

指針可以通過以下幾種方式初始化:

  1. 將指針初始化為NULL:表示指針不指向任何有效的內存地址。
  2. 將指針初始化為某個變量的地址:使用&運算符獲取變量的地址。
  3. 將指針初始化為動態分配的內存地址:使用malloccalloc函數分配內存。

示例2:將指針初始化為NULL

int *ptr = NULL; // 聲明并初始化為NULL

示例3:將指針初始化為某個變量的地址

int num = 10;
int *ptr = # // 聲明并初始化為變量num的地址

示例4:將指針初始化為動態分配的內存地址

int *ptr = (int *)malloc(sizeof(int)); // 動態分配一個整數大小的內存
if (ptr == NULL) {printf("Memory allocation failed\n");return 1;
}
*ptr = 10; // 通過指針訪問并修改動態分配的內存

3. 使用指針訪問和修改變量的值

指針可以通過*運算符來訪問和修改它所指向的變量的值。

示例5:使用指針訪問和修改變量的值

#include <stdio.h>int main() {int num = 10; 

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

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

相關文章

好未來golang后端開發

OSI網絡模型 TCP和UDP對比 HTTP和HTTPS對比 B樹 HTTP常見狀態碼 線程和進程的區別 goroutine的調度模型GMP 常見的排序了解哪些 快速排序 func quickSort(data []int) {if len(data) < 1 {return}base : data[0]l, r : 0, len(data)-1for i : 1; i < r; {if data[i] &g…

(持續更新)Ubuntu搭建LNMP(Linux + Nginx + MySQL + PHP)環境

LNMP&#xff08;Linux Nginx MySQL PHP&#xff09;環境是在Linux操作系統上構建的一個高性能Web服務器環境。M也可以指代其他數據庫&#xff0c;P也可以指代Python 1. 準備Linux系統 確保你已經在一臺服務器或虛擬機上安裝了Linux操作系統。推薦使用Ubuntu、CentOS或Debi…

服務器頻繁重啟日志分析與診斷

從你提供的日志來看&#xff0c;系統確實經歷了多次重啟。這個日志行顯示的是&#xff1a; reboot system boot 6.8.0-58-generic Tue Apr 29 17:54 - 14:26 (20:31)這表示系統在4月29日17:54啟動&#xff0c;運行了約20小時31分鐘后&#xff0c;于次日14:26結束&#xff08;可…

如何提升個人的穩定性?

提升自我的穩定性是一個系統性工程&#xff0c;需要從內在認知、情緒管理、行為習慣到外在環境等多個維度進行優化。 以下是一些具體建議&#xff0c;幫助你逐步增強內心的穩定感&#xff1a; 一、內在認知調整 1. 建立清晰的自我認知 通過反思&#xff08;如寫日記、冥想…

數值求解Eikonal方程的方法及開源實現

Eikonal方程是一類非線性偏微分方程&#xff0c;形式為 ( |\nabla u(x)| f(x) )&#xff0c;常見于波傳播、幾何光學、最短路徑等問題。以下是數值求解Eikonal方程的方法及開源實現參考&#xff1a; 一、數值求解方法 有限差分法&#xff08;FDM&#xff09; 快速行進法&#…

基于Redis實現-用戶簽到

基于Redis實現-用戶簽到 這個功能將使用到Redis中的BitMap來實現。 我們按照月來統計用戶簽到信息&#xff0c;簽到記錄為1&#xff0c;未簽到則記錄為0 把每一個bit位對應當月的每一天&#xff0c;形成了映射關系。用0和1標示業務狀態&#xff0c;這種思路稱為位圖(BitMap)。…

如何用GPU Instancing來優化樹木草石重復模型

1&#xff09;如何用GPU Instancing來優化樹木草石重復模型 2&#xff09;Unity ASTC壓縮后的紋理在部分安卓機型上不顯示 3&#xff09;現在大部分項目的豎版UI設計分辨率是多少 4&#xff09;Android上拖拽物體不實時跟隨手指的問題 這是第430篇UWA技術知識分享的推送&#x…

Java面試高頻問題(31-33)

三十一、服務網格&#xff1a;東西向流量治理與故障注入 服務網格架構分層 mermaid graph BT subgraph Control Plane APilot --> BEnvoy Sidecar CMixer --> B DCitadel --> B end subgraph Data Plane B --> E服務A B --> F服務B B --> G服務C end 核心能…

初學python的我開始Leetcode題8-3

提示&#xff1a;100道LeetCode熱題-8-3主要是二叉樹相關&#xff0c;包括三題&#xff1a;將有序數組轉換為二叉搜索樹、驗證二叉搜索樹、二叉搜索樹中第K小的元素。由于初學&#xff0c;所以我的代碼部分僅供參考。 目錄 前言 題目1&#xff1a;將有序數組轉換為二叉搜索樹…

1996-2022年全國31省ZF干預度數據/財政干預度數據(含原始數據+計算過程+結果)

1996-2022年全國31省ZF干預度數據/財政干預度數據&#xff08;含原始數據計算過程結果&#xff09; 1、時間&#xff1a;1996-2022年 2、來源&#xff1a;國家統計局和各省年鑒 3、指標&#xff1a;地方財政一般預算支出、地區生產總值&#xff08;GDP&#xff09;、ZF干預度…

g4f升級到0.5.2.0版本了,但是有些機器無法運行,只能降級到0.5.1.2版本

g4f升級到0.5.2.0版本了&#xff0c;跟0.5.1.2更以前的版本相比&#xff0c;主要更新為增加了可以設置Huggingface等供應商的key Providers API key HuggingFace:Get API key HuggingSpace: 因為很多模型都會調用Huggingface&#xff0c;所以最好設置Huggingface的API key。…

C語言教程(二十五):C 語言函數可變參數詳解

引言: 在 C 語言編程中,有時我們需要處理參數數量不固定的情況,比如常見的 printf 函數,它可以根據格式化字符串的要求接受任意數量的參數。這種能接受不確定數量參數的函數,就是可變參數函數。下面將深入探討其定義、實現原理、使用方式、示例以及注意事項。 一、可變參…

OpenStack Yoga版安裝筆記(25)Nova Cell理解

1、Nova Cell概述 &#xff08;官方文檔&#xff1a;Cells (v2) — nova 25.2.2.dev5 documentation&#xff09; Nova中的cells功能的目的是允許較大的部署將其多個計算節點分割成多個cell。所有的nova部署都默認是cell部署&#xff0c;即使大多數情況下只有單一cell。這意味…

Java Set<String>:如何高效判斷是否包含指定字符串?

在 Java 開發中&#xff0c;我們經常使用 Set 集合來存儲一組唯一性的元素。特別是 HashSet&#xff0c;由于其基于哈希表的實現&#xff0c;在進行元素查找&#xff08;判斷是否包含&#xff09;時通常具有非常高的效率&#xff08;平均時間復雜度 O(1)&#xff09;。 那么&a…

MySQL 查找指定表名的表的主鍵

原理 SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME 表名 AND CONSTRAINT_NAME PRIMARY方法 public static String getPk(String tableName) {String sql "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TA…

Java大廠面試突擊:從Spring Boot自動配置到Kafka分區策略實戰解析

第一輪核心知識 面試官:請解釋Spring Boot中自動配置的工作原理并演示如何自定義一個@ConfigurationProperties組件? xbhog:自動配置通過EnableAutoConfiguration注解觸發,結合當前環境判斷(如是否檢測到MyBatis依賴)和條件注解(@ConditionalOnClass)來決定是否啟用配…

開發板型號 ESP32-DevKitC-32模塊型號 ESP32-WROOM-32 和主控芯片 ESP32-D0WDQ6-V3

以下是關于開發板型號 ESP32-DevKitC-32、模塊型號 ESP32-WROOM-32 和主控芯片 ESP32-D0WDQ6-V3 的詳細介紹&#xff1a; 開發板型號&#xff1a;ESP32-DevKitC-32 概述&#xff1a;ESP32-DevKitC 是樂鑫推出的一款基于 ESP32 模組的小型開發板&#xff0c;板上模組的絕大部…

數據庫系統綜合應用與深度實踐指南

前言 在當今數據驅動的時代&#xff0c;數據庫技術已成為信息系統的核心支柱。從簡單的數據存儲到復雜的企業級應用&#xff0c;數據庫系統支撐著現代社會的方方面面。本文作為一篇綜合性的數據庫科普文章&#xff0c;旨在為讀者提供從基礎到進階的完整知識體系&#xff0c;涵…

vscode 的空格和 tab 設置 與 Rime 自建詞庫

自動保存&#xff08;多用于失去焦點時保存&#xff09; Files: Auto Save 推薦不勾 保存時格式化&#xff08;Pritter 插件的功能&#xff0c;自動使用 Pritter 的格式&#xff09; Editor: Format On Save 推薦不勾 tab 的空格數量&#xff0c;2 或 4 Editor: Tab Size 推薦…

【Python爬蟲詳解】第五篇:使用正則表達式提取網頁數據

在前面幾篇文章中&#xff0c;我們介紹了幾種強大的HTML解析工具&#xff1a;BeautifulSoup、XPath和PyQuery。這些工具都是基于HTML結構來提取數據的。然而&#xff0c;有時我們需要處理的文本可能沒有良好的結構&#xff0c;或者我們只關心特定格式的字符串&#xff0c;這時正…