久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

C語言指針引用數組案例講解

這篇文章主要介紹了C語言指針引用數組案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下

前言:C語言中指針玩的是什么,是內存,要想學好指針的小伙伴們要先對數據在內存中是怎么玩的做一番了解~

      當在程序中定義一個變量時,系統會根據其數據類型為其開辟內存空間,例如Visual C++為整型變量分配四個字節的空間,為單精度浮點型變量分配四個字節,為字符型變量分配一個字節,內存中每個字節都有自己獨立且唯一的一個編號,這就是地址 ,如下圖,系統為變量i分配了2000~2004的存儲單元。

在這里插入圖片描述

_訪問變量的方式_有如下圖兩種:
第一種直接訪問方式,直接通過變量名訪問,變量名與地址有一一對應關系,因此按此地址直接對變量i的存儲單元進行訪問;
第二種間接訪問方式,先通過i_pointer找到i的地址的位置,再通過i的所存地址的位置找到i的地址2000,隨后對變量i進行存取操作。間接訪問的方式就要用到指針,所謂指針(2000)即為一個變量的地址,指針變量(i_pointer)是存儲這個地址的用來指向另一個對象的變量。

關鍵字 變量類型
int 整型變量
char 字符變量
類型名* 指針變量

它們之間的關系為:指針變量的值是指針,指針是變量i的地址,變量i存放所需要存放的存儲內容。
圖片的中*為取值運算符,*i_pointer表示對i_pointer中存放的地址進行取值,相當于 變量i。

在這里插入圖片描述

指針的定義:

基類型 *變量名
例:int *p
char *p
float p
注意 : 此時的
與上文中提到的取值運算符并不是一個概念,此時的
*意思是定義一個變量,這個變量是指針變量。

指針的引用:

對指針進行賦值:
以下面程序為例:

int *p;
int a = 3;
p = &a;
*p = 2;

p = &a(&為取地址符,意思是取變量a的地址賦給指針變量P)
*p = 2(p上文中已經提到是對指針變量P中存儲的地址進行取值p相當于變量a,對
*p進行賦值即相當于對變量a進行賦值)

指針變量做函數參數

以定義兩個變量a和b,使其值進行交換為例進行闡述


#include<stdio.h>

//值傳遞
void swap1(int x, int y) {
	int z;
	z = x;
	x = y;
	y = z;
}

//地址傳遞 
void swap2(int *p1, int *p2) {
	int t = *p1;
	*p1 = *p2;
	*p2 = t;
}

/*
錯誤,指針變量t所指向的內容不可預見,對*t賦值就是向一個未知存儲單元賦值 ,可能操縱到有用信息,
破壞系統的正常工作狀態 ,這種指針叫做**野指針**;

那么如何解決野指針危險性呢:
可以對該指針進行初始化,使其指向NULL,NULL為地址為0的內存地址,在大多數操作系統上,該內存為操作系統保留,
用戶不可操控  
*/ 
//void swap3(int *p1, int *p2) {
//	int *t;
//	*t = *p1;
//	p1 = *p2;	//報錯 
//	p2 = *t;
/
                
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

這篇文章主要介紹了C語言指針詳解及用法示例,介紹了其相關概念,然后分享了幾種用法,具有一定參考價值。需要的朋友可以了解下
主站蜘蛛池模板: 午夜在线观看视频 | 日本天堂在线观看 | 婷婷久久五月天 | 国产女人18毛片水18精品 | 免费播放av | 久久精品一区二区三区四区五区 | 一区二区三区在线免费观看 | 国产日韩欧美亚洲 | 亚洲在线一区二区 | 天天射天天射 | 天天搞天天干 | 一级做a视频 | 不卡av在线播放 | 久草综合网 | 免费观看成人 | 99香蕉视频| 明日边缘 | 国产在线二区 | 午夜视频福利 | 久久国产综合 | www亚洲| 91三级视频 | 欧美人与野 | 日本一区二区三区在线视频 | 欧美日韩色 | 日韩精品少妇 | 国产香蕉在线观看 | 国产精品一二三区 | 欧美日韩91 | 成人毛片在线 | 草草在线视频 | 国产一级片网站 | 国产成人三级一区二区在线观看一 | 一级黄色免费看 | 可以看的毛片 | 一区二区小视频 | 欧美精品一级片 | 亚洲一区视频在线 | 国产伦精品一区二区三区视频网站 | 国产美女精品视频 | 九月色婷婷 |