《零基礎看得懂的C語言入門教程 》——(十)C語言的指針原來是這樣

一、學習目標

  1. 了解指針的概念
  2. 了解指針的使用方法
  3. 了解雙重指針

目錄

C語言真的很難嗎?那是你沒看這張圖,化整為零輕松學習C語言。

第一篇:(一)脫離學習誤區
第二篇:(二)C語言沒那么難簡單開發帶你了解流程
第三篇:(三)輕輕松松理解第一個C語言程序
第四篇:(四)C語言的基本數據類型及變量
第五篇:(五)C語言的變量、常量及運算
第六篇:(六)輕輕松松了解C語言的邏輯運算
第七篇:(七)C語言的循環分分鐘上手
第八篇:(八)了解基本數組還不是那么簡單
第九篇:(九)C語言二維數組與循環嵌套
第十篇:(十)C語言的指針原來是這樣
第十一篇:(十一)C語言自定義函數真的很簡單
第十二篇:(十二)原來結構體是這么回事
第十二篇:(十三)socket服務端編寫

C語言新手的100個報錯解法
歡迎大家關注公眾號,公眾號每滿1024及1024倍數則會抽獎贈送機械鍵盤一份+IT書籍2份喲~
在這里插入圖片描述

二、了解指針的使用方法

指針在C語言中指指向一個內存地址的數據類型。在C語言中,變量是有一個內存地址表示它的存儲位置,這個位置就像你家的門牌號一樣表示你家具體位置的一個索引;例如某某某市某某區某某鎮某某村某某街道幾號。指針可以指向變量所在的地址,從而獲取到當前地址所存儲的值。

2.1 了解指針的使用方法
首先看一下在C語言中,指針如何指向一個變量的,如下代碼:

int *p;
int a=10;
p=&a;

以上代碼使用 int 修飾一個指針p表示指針指向一個整型變量,在聲明的時候需要使用*加變量名表示一個指針;隨后定義了一個變量a值為10;最后使用取地址符號&取得a的地址并把改地址賦值給p指針變量。
指針的聲明格式為:

類型 *指針名;

我們查看一個完整的示例:

#include<stdio.h>
void main(){int *p;int a=10;p=&a;printf("%d\n",*p);
}

以上代碼之前已經了解過了一部分,這里著重注意printf("%d\n",*p);,這局代碼中輸出了p的值,由于我的要求是輸出指針p所指向的變量a所存儲的值,所以在這里使用了取值符號 *,表示獲取指針p指向變量的內容。

結果如下:
在這里插入圖片描述
2.2 多重指針
多重指針是指向指針的指針。
查看示例:

int *p,**p1;
int a=10;
p=&a;
p1=&p;

以上代碼中,定義了兩個指針,一個為p另一個為p1;在這里可以發現第一個p使用了一個“*”,p1則使用了兩個 “ * ”;使用一個“ * ” 表示當前指針指向的是一個變量,使用兩個 “ * ”表示當前指針需要指向一個指針,所指向的指針指向了一個變量;也就是說指針需要指向一個變量,中間不存在指針,則使用一個 “ * ”,指針指向一個指針,指針再指向一個變量則需要兩個“ * ”,以此類推,多一個指針則加一個 “ * ”。

隨后定義了一個變量a值為10,使用p指向了a,隨后p1指向了指針p。
查看完整示例:

#include<stdio.h>
void main(){int a=10;int *p,**p1;p=&a;p1=&p;printf("%d\n",**p1);
}

運行結果如下:
在這里插入圖片描述
指向兩個指針的指針程序如下:

#include<stdio.h>
void main(){int a=10;int *p,**p1,***p2;p=&a;p1=&p;p2=&p1;printf("%d\n",***p2);
}

運行結果如下:
在這里插入圖片描述

五、總結

通過以上描述與講解,我們了解了以下幾點內容:

  1. 了解了指針的概念
  2. 了解了指針及多重指針的使用方法

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

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

相關文章

T-SQL編程基礎之一:變量與基本語句

一個標準的計算機語言,大概要提供的必要主要功能是:變量說明、分支判斷、循環和輸入輸出結果。T-SQL也一樣,具有這些功能,只不過T-SQL的輸入和輸出不是界面,而是表。 完全精確描述一個計算機語言,大概要很厚的書才能做到,好在目前這些書籍的發行也很多,許多書描述的都…

Java之volatile如何保證可見性和指令重排序

1 我們先了解CPU緩存 CPU緩存為了解決CPU運算速度與內存讀寫速度不匹配的問題&#xff0c;因為CPU運算速度要比內存讀寫速度快得多 一次主內存的訪問通常在幾十到幾百個時鐘周期一次L1高速緩存的讀寫只需要1~2個時鐘周期一次L2高速緩存的讀寫也只需要數十個時鐘周期 CPU大多數…

bigpipe提升網站響應速度

2019獨角獸企業重金招聘Python工程師標準>>> 主要思想就是通過異步 發起一次請求&#xff0c;后端不關閉輸出流&#xff0c;多個線程處理各自任務&#xff0c;然后分別發送到客戶端。 https://github.com/4rnold/Demo-Project/tree/master/bigpipe-demohttps://gith…

mysql 添加用戶_mysql創建用戶與授權

一、創建用戶CREATE USER usernamehost IDENTIFIED BY password;說明username&#xff1a;你將創建的用戶名host&#xff1a;指定該用戶在哪個主機上可以登陸&#xff0c;如果是本地用戶可用localhost&#xff0c;如果想讓該用戶可以從任意遠程主機登陸&#xff0c;可以使用通配…

《零基礎看得懂的C語言入門教程 》——(十一)C語言自定義函數真的很簡單

一、學習目標 了解C語言的自定義函數的使用方法了解C語言自定義函數的傳參了解C語言自定義函數的返回值 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離學習誤區 第二篇&#xf…

T-SQL編程基礎之二:條件選擇、循環編程

1. 條件判斷以及GOTO語句 條件判斷是計算機語言的重要功能,在T-SQL中,條件判斷的語句是: if 條件 … else … 或者是: if 條件 … 注意寫法和C類似,但條件描述不使用()也可以。如果是在一個條件里執行多條語句,則要構造復合語句,復合語句是在BEGIN…EDN中構造…

**【ci框架】精通CodeIgniter框架

http://blog.csdn.net/yanhui_wei/article/details/25803945 一、大綱 [php] view plaincopy1、codeigniter框架的授課內容安排 2、codeigniter框架的簡介 |-----關于框架的概念 |-----使用CI框架的好處 |-----為什么選擇CI框架 3、codeigniter框架…

AspNetCore開源中間件-VueRouterHistory

前言用過VueRouter路由組件的應該都知道&#xff0c;VueRouter有hash和history兩種模式。hash模式會在url中插入#&#xff0c;history模式下url則看上去更加簡潔美觀。如果想要支持history模式則必須要后端服務進行配合。常用后端服務器配置方式請參考 后端配置例子后端配置例子…

T-SQL編程基礎之三:游標(Cursor)編程

SQL是一種面向集合操作的語言,大多情況下,一個SQL語句將會操作數據庫表里的很多數據,基本上,一個數據庫的程序員腦子里應該想的是如何整體操作一個表或者是幾個表。 但也有一些情況下,試圖整表操作是不現實的,需要一行一行處理數據,這種情況下,SQL語言提供了所謂游標的…

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(一)既然你選擇了這系列教程那么我就要讓你聽得懂

一、前言 幾個月前編寫了一份python語言入門的博文&#xff0c;近期重新審閱了一遍發現編寫的質量太過隨意&#xff0c;可能對于一部分人并不是非常友好&#xff0c;故此重新編寫Python語言的零基礎教程。 本篇教程將會盡量把一些專業術語給讀者講解清楚&#xff0c;并且讓讀…

centos 7下安裝mysql_Centos7下安裝MySQL5.7(數據庫的最全安裝方法)

Centos7下使用yum安裝mysql數據庫首先Centox7已經不支持mysql&#xff0c;因為收費了你懂得&#xff0c;所以內部集成了mariadb&#xff0c;而安裝mysql的話會和mariadb的文件沖突&#xff0c;所以需要先卸載掉mariadb。由于確定使用mysql&#xff0c;那只有卸載mariadb了。一、…

環形隊列

在網上看到一篇比較好的介紹隊列的文章&#xff0c;地址為&#xff1a;http://www.cnblogs.com/kubixuesheng/p/4104802.html 特此感謝原創作者&#xff0c;以下均為摘抄。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1、…

HTTP1.0、HTTP1.1 、SPDY、HTTP2.0之演變過程和優化

一、協議的演變過程和時間 HTTP1.0(1996年) -> HTTP1.1(1999年) -> SPDY(2012年google提出了SPDY的方案) -> HTTP2.0(2013年8月進行首次合作共事性測試) 二、影響一個HTTP網絡請求的因素 主要有兩個:帶寬和延遲 1)帶寬:網絡基礎建設已經使得帶寬得到極大的提升…

OK335xS GPMC nand device register hacking

/********************************************************************************** OK335xS GPMC nand device register hacking* 說明&#xff1a;* 由于最近遇到No NAND device found這個內核錯誤&#xff0c;在網絡上也沒找到很好的* 解決辦法&am…

Blazor University (19)使用 RenderFragments 模板化組件 —— 數據傳遞

原文鏈接&#xff1a;https://blazor-university.com/templating-components-with-renderfragements/passing-data-to-a-renderfragement/將數據傳遞給 RenderFragment源代碼[1]到目前為止&#xff0c;我們使用了僅包含子標記的 RenderFragments&#xff0c;然后在渲染組件時按…

一頭扎進Node(三) - File System

file.open:異步模式打開文件 fs.open(path, flags[, mode], callback) 案例代碼如下&#xff1a; var fs require(fs);/*** 參數說明&#xff1a;* 1.path&#xff1a;要打開的文件的文件路徑* 2.flags&#xff1a;打開文件的方式 讀/寫* r&#xff1a;只讀方式打開文件…

《零基礎看得懂的C語言入門教程 》——(十二)原來結構體是這么回事

一、學習目標 了解C語言的結構體的使用方法了解C語言結構體的結構的賦值了解多種C語言結構體變量的賦值方法和取值方法 目錄 C語言真的很難嗎&#xff1f;那是你沒看這張圖&#xff0c;化整為零輕松學習C語言。 第一篇&#xff1a;&#xff08;一&#xff09;脫離學習誤區 第…

【學生選課系統經典】C#與SQLSERVER連接:Windows應用工程案例

實驗任務描述 1 用C#訪問SQLSERVER數據庫(兩種安全模式); 2 用C#完成數據庫指定表上的數據顯示; 3 用C#完成數據庫指定表上的數據插入、刪除和更新; 4 用C#完成數據庫用戶驗證。 注意,由于C#語言的強大功能,下面的代碼適用于SQLSERVER2000、也適合于SQLSERVER2005。區別僅…

Java精選筆記_JDBC

JDBC概述 什么是JDBC JDBC全稱是Java數據庫連接&#xff08;Java Database Connectivity&#xff09;&#xff0c;應用程序可通過這套API連接到關系數據庫&#xff0c;并使用SQL語句來完成對數據庫中數據的查詢、更新和刪除等操作。是一套用于執行SQL語句的Java API。Java的數據…

mysql關系數據庫引擎_MySQL數據庫引擎詳解

作為Java程序員&#xff0c;MySQL數據庫大家平時應該都沒少使用吧&#xff0c;對MySQL數據庫的引擎應該也有所了解&#xff0c;這篇文章就讓我詳細的說說MySQL數據庫的Innodb和MyIASM兩種引擎以及其索引結構。也來鞏固一下自己對這塊知識的掌握。Innodb引擎Innodb引擎提供了對數…