1. 程式人生 > >指標初始化 賦值 void*指標

指標初始化 賦值 void*指標

除了使用數值0火災編譯時值為0的const量外,還可以用C++從C語言繼承下來的前處理器變數NULL,該變數在cstdlib標頭檔案中定義,其值為0。如果在程式碼中使用了這個前處理器變數,則編譯時會自動被數值0替換。因此,把指標初始化為NULL等效於初始化為0值。

注:前處理器變數不是在std名稱空間中定義的,因此其名字為NULL,而非 std::NULL

除兩種例外情況外,指標只能初始化或賦值為同類型的變數地址或另一個指標。

由於指標的型別用於確定指標所指物件的型別,因此初始化或賦值時必須保證型別匹配。

指標用於間接訪問物件,並基於指標的型別提供可執行的操作,如int型指標只能把其指向的物件當作int型資料來處理,如果該指標確實指向了其他型別(如double等)的物件,則在指標上執行的任何操作都有可能出錯。

C++提供了一種特殊的指標型別void*,它可以儲存任何型別物件的地址。

void*表明該指標與一地址值相關,但不清楚儲存在此地址上的物件的型別。

void*指標只支援幾種有限操作:與另一個指標比較;向函式傳遞void*指標或從函式返回void*指標;給另一個void*指標賦值。

不允許使用void*指標操縱它所指向的物件。

相關推薦

指標初始 void*指標

除了使用數值0火災編譯時值為0的const量外,還可以用C++從C語言繼承下來的前處理器變數NULL,該變數在cstdlib標頭檔案中定義,其值為0。如果在程式碼中使用了這個前處理器變數,則編譯時會自動被數值0替換。因此,把指標初始化為NULL等效於初始化為0值。 注:前處

不要再直接用字串常量給字串指標初始/

起因是我看別人程式碼發現了那麼一段程式,就是諸如char *p ="abcde";這樣的我之前是從來沒這樣初始化過的,所以還以為get到了新方法,後來一想不對。。。”abcde”應在常量儲存區,這

Jquery EasyUI Combotree 初始

multiple pat spa align tip 點擊 ces === ucc Jquery EasyUI Combotree 初始化賦值 ================================ ?Copyright 蕃薯耀 2018年5月7日 https

重新認識memset函式及c++中陣列的初始

下面就好好重新認識一下這個函式,自己寫了測試的程式碼,memset到底怎麼用呢? 先貼測試程式碼: #include<iostream> #include<cstdio> #include<algorithm> #include<string>

mysql 更換主鍵,新增新主鍵欄位及主鍵初始 sql

順序執行以下sql語句 1.刪除表主鍵約束 ALTER TABLE mobilems_m_weex DROP PRIMARY KEY; 2.新增新主鍵欄位id ALTER TABLE mobilems_m_weex ADD id BIGINT(20) NOT NULL C

(轉)Java變數初始null

原地址:http://www.cnblogs.com/znsongshu/p/6282672.html 在Java中,null值表示引用不指向任何物件。執行過程中系統發現使用了這樣一個引用時·可以立即停止進一步的訪問,不會給系統帶來任何危險。 1.如果是物件的field的

百度編輯器ueditor初始

var ue = UE.getEditor('editor');//初始化物件 $(document).ready(function(){ var ue = UE.getEditor('editor'); var proinfo=$("#divdata").te

easyui datetimebox初始

預設顯示今天0點到當前時間點 jsp <div id="tb" style="padding-left: 10px"> 開始時間: <i

Java類中變數的初始/過程

public class Person {     public String name="Person";     int age=0;          {         System.out.println("初始化塊:"+name);         name =

Java集合初始等相關問題

以下來舉幾個例子: Map map= new HashMap<String, String>() {{ put("key1", "value1"); put("key2", "value2");

結構體初始及結構體指標.結構體陣列.結構體函式的呼叫

#include "stdio.h" #include "stdlib.h" #include "string.h" int fun(void); /************************************* int ARRSCORE[3]={133,123

php 陣列 引用 陣列指標的幾個函式 遍歷陣列

1. 複製一個數組,就是把一個數組賦值給一個變數便可。會把陣列指標位置一同複製。這裡面有兩種情況。一,指標位置合法,這時直接複製,無影響。二,原陣列指標位置非法時,“新”陣列指標會初始化。(這裡的新字為什麼要加引號?請看下文)先看例子: 出現這種情

C++ 指標初始要注意的地方

1. 宣告多個指標的時候: int* P1,P2; 如上所示,宣告的是建立一個指標P1和一個int型的變數P2。而不是宣告的兩個指標。 對每個指標變數名,都需要使用一個*。 在C++中,int* 是一種複合型別,是指向int的指標。 2. 可以在宣告語句中初始化指標,但是,在這種情況下,被

C程式碼開發遇到的問題 變數初始和結構體指標移動

1. 變數初始化 函式內部的變數如果不初始化的話預設不是0而是一個隨機值。 下面的程式用來列印一個未初始化的無符號的整型值,執行幾遍,每次的結果都會不一樣 #include <stdio.h> void PrintUint() { /* 預設是隨機值,不一定是0 *

[C]關於函式指標引數的

問題 在有一次嘗試用stat()函式獲取檔案屬性的時候,發現如果直接宣告一個指標,然後把這個指標作為引數傳給函式,會導致函式執行失敗,原始碼: #include <sys/stat.h> #include <unistd.h> #include <stdio.h>

求助!結構體的二級指標陣列給一級指標初始遇見的異常

百度也看了很多部落格都沒解決 主要程式碼如下 typedef struct HTNode { int weight; char c;//存這個字元,單個字元,符號都是葉子節點 int code; HTNode *lchild, rchild; }HuffmanTree; /

ABAP 用指標的方式內表

一般給內表賦值的話我們可以選擇append的方式,也可以使用指標對內表賦值,此處記錄一下如何使用指標為內表賦值 LOOP AT lt_tab_out ASSIGNING <fs_out> WHERE aufnr NE space.         READ TA

opencv對影象名進行修改、Mat指標初始

參考連結 https://blog.csdn.net/susu_love/article/details/53218628 https://blog.csdn.net/Kelvin_Yan/article/details/48315175?utm_source=blogxgwz1 利用指

結構體陣列的指標初始與記憶體釋放

結構體如下: Typedef structstudent { Int num; Char* name; } Tom,*Lily; 如果定義成Tom的形式,不需要為結構體分配記憶體,但是需要對name分配記憶體 Tom.name =(char*)malloc(sizeof(

結構體中函式指標初始

/** * 為結構體中的指標陣列賦值 */ #include <stdio.h> typedef struct test { void (*p)(void); void (*q)(void); void (*y)(void); }t