空指標在主函式中被賦值與在呼叫函式中被賦值的差別
int main()
{
int a=10;
int *p=&a;
p=NULL;
printf("%d\n",*p);
return 0;
}
在這個程式中因為將a的地址賦值給指標p,然後又將p中的儲存的a的地址賦值為空,所以指標p,不再有指向,列印*p程式崩潰。
# include <stdio.h>
void Fun(int *p)
{
p=NULL;
}
int main()
{
int a=10;
int *p=&a;
Fun(p);
printf("%d\n",*p);
return 0;
}
在這個程式中,先將a的地址賦值給指標p,然後呼叫函式Fun,將p中儲存的a的地址傳到Fun中,該指標在呼叫函式中,將傳到該呼叫函式中的指標賦值為空,此時呼叫函式中的指標已經不是指標p,所以修改的也只是另外一個指標,此時傳回到主函式的指標不再是之前儲存a的地址的指標p,所以對於指標p仍然指向a,,*p為 10.
相關推薦
JAVA中String直接賦值與new出來的物件賦值的區別
舉個例子,比如 String she = "fdasfdg" 與 String she = new String("fdasfdg"); 他們到底有什麼區別? String she = "f
lua函式中的引數與返回值與print函式
function hanshu1() a=2222 print("111111111111") print(a) end function hanshu2(a,b,c,d) print(a,
Block變數的宣告、賦值與呼叫 匿名block
Block變數的宣告、賦值與呼叫 1.Block變數的宣告 //Block變數的宣告格式為: 返回值型別(^Block名字)(引數列表); // 宣告一個無返回值,引數為兩個字串物件,叫做aBlock的Block void(^aBlock)(NSString *x, NSString *y);
C++STL中vector容器 begin()與end()函式、front()與back()
begin函式: 函式原型: iterator begin(); const_iterator begin(); 功能: 返回一個當前vector容器中起始元素的迭代器。 end函式: 函式原型: iterator end(); const_iterat
C++中類的組合與建構函式
首先看看建構函式的概念。在程式執行過程中,當遇到物件宣告語句時,程式會想作業系統申請一定的記憶體空間用於存放新建的物件。而編譯器不知道如何產生程式碼來實現初始化。所以C++做了一套物件初始化的機制,就是建構函式。 然後是類的組合中,當建立類的物件時,如果這個類
函式的返回值、呼叫函式以及函式的引數
函式的返回值 1、什麼是返回值 返回值是一個函式的處理結果 2、為什麼要有返回值 如果我們需要在程式中拿到函式的處理結果做進一步的處理,則需要函式必須有返回值 3、函式的返回值的應用 函式的返回值用return去定義 格式為: return 值 注意: 1、return是一個函式結束的標誌,函式
[C++]STL中vector容器 begin()與end()函式、front()與back()的用法
本部落格轉自http://blog.csdn.net/duan19920101/article/details/51679517 一、begin函式 函式原型: iterator begin(); const_iterator begin(); 功能: 返回一個當
C++STL中vector容器 begin()與end()函式、front()與back()的用法
一、begin函式 函式原型: iterator begin(); const_iterator begin(); 功能: 返回一個當前vector容器中起始元素的迭代器。 二、end函式 函式原型: iterator end(); const_iterator end(
easyUi彈出window視窗傳值與呼叫父頁面的方法,子頁面給父頁面賦值
<!-- 父頁面 --> <!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"> <html&
一:Vue中的join(),reverse()與 split()函式用法解析
Html<div id="app-5"> <p>{{ message }}</p> <button v-on:click="reverseMessage
Python中的多型與虛擬函式
C++中的虛擬函式與多型,是很多C++面向物件程式設計的一個基礎,在Python中,是否也存在多型和虛擬函式,答案是有的。看下面的這個例子 from abc import ABCMeta, abstractmethod class Base(): __m
關於JavaScript函式中的方法名與html標籤中的id名重複問題
今天開始學了JavaScript,最基本的函式的內嵌,寫了一個form, <form id="aaa" name="calcForm" action="#" method="post" onSubmit="calc()"> 被除數:<input type="
const引數,const返回值與const函式
在C++程式中,經常用const 來限制對一個物件的操作,例如,將一個變數定義為const 的: const int n=3; 則這個變數的值不能被修改,即不能對變數賦值。 const 這個關鍵字經常出現在函式的定義中,而且會出現在不同的位置,比如:
關於React的賦值與呼叫方法
#關於React的賦值與呼叫方法 比如呼叫方法的時候我們可以這樣來使用closeFrm() <div classNam
【匯編雜項】關於_高級語言中 數組越界與匯編中 棧溢出的_聯系的思考
edi bits 關註 學習 type 控制 方便 設計 滿足 數組越界 數組越界,是剛開始學習編程時,就不斷被別人提醒的一個點,“相當可怕”。獲取不合理數值,造成程序異常or操作計算機重要內存,造成威脅。。。原因是什麽呢?數組在匯
String類中的equals方法與Object類中equals方法的區別
今天在無意中發現一個小知識點,難度不大就是簡單和大家分享一下。 String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2));//true
iOS開發之OC與swift開發混編教程,代理的相互呼叫,block的實現。OC呼叫Swift中的代理, OC呼叫Swift中的Block 閉包
本文章將從兩個方向分別介紹 OC 與 swift 混編 1. 第一個方向從 swift工程 中引入 oc類 1. 1 如何在swift的類中使用oc類 1.2 如何在swift中實現oc的代理方法 &
xml編寫中的DTD約束與schema約束中的語法
DTD語法 &nbs
Android外掛化技術之旅 1 開篇 - 實現啟動外掛與呼叫外掛中的Activity和Service
前言 Android技術如今已很成熟了,元件化、外掛化、熱修復等等框架層出不窮,如果只停留在單純的會用框架上,技術永遠得不到成長,只有懂得其原理,能夠婉婉道來,能夠自己手動寫出,技術才會得到成長,與其焦慮未來,不如把握現在。本篇將手寫教大家寫出外掛化框架,外掛化技術是Android高階工程師必備的技術之一,
unity陣列或連結串列需要空間很大賦值與呼叫
1 設為public方便其它指令碼呼叫。 但這時 Inspector上對應的指令碼點開,變數會全部展開。有時候直接影響工程的編寫,不小心開啟,電腦卡死等。 2 可以申請為 private變數,其它腳本里用,則寫一個函式,相互傳值。 using System.Collec