1. 程式人生 > >C++中點操作符和箭頭操作符的區別

C++中點操作符和箭頭操作符的區別

/*
* "."與"->"的區別
* "."左邊必須是結構體名/物件名的實體
* "->":的左邊必須是結構體名/物件名的指標
* 輸出:輸入年月日時分秒,並且輸出,輸出形式為年/月/日/時/分/秒

*/

【箭頭形式】

/*
* 共同體+指標
* 輸出:5
* 評論:共同的初始化被我認為成了那是陣列的初始化了
* 所以上面說輸出ival的時候我真的是沒有弄明白呀
* 這個程式碼還是相對簡單一點的
* 難度:3
*/
#include <iostream>
#include <string>
using namespace std; 
union  variant
{
int ival;
float fval;
double dval;
};
union variant s1={5};
void main()
{
union variant *p

=&s1;
union variant s2;
s2=s1;
cout<<"p->ival=  "<<p->ival<<endl;
cout<<"s2.ival=  "<<s2.ival<<endl;
system("pause");
}

【點形式】

#include <iostream>
#include <string>
using namespace std; 
union  variant
{
int ival;
float fval;
double dval;
};
union variant s1={5};
void main()
{
union variant *p=&s1;
union variant s2

;
s2=s1;
cout<<"p->ival=  "<<p->ival<<endl;
cout<<"s2.ival=  "<<s2.ival<<endl;
system("pause");
}

相關推薦

C++中點操作符箭頭操作符區別

/* * "."與"->"的區別 * "."的左邊必須是結構體名/物件名的實體 * "->":的左邊必須是結構體名/物件名的指標 * 輸出:輸入年月日時分秒,並且輸出,輸出形式為年/月/日

C++點操作符箭頭操作符

相同點:兩個都是二元操作符,其右操作符是成員的名稱。  主要看左邊的操作符,左邊是指標用箭頭,否則用點操作符 不同點:點操作符左邊的運算元是一個“結果為結構”的表示式;                 箭頭操作符左邊的運算元是一個指向結構的指標。 首先介紹一下C

關於C/C++中的點操作符箭頭操作符

點操作符 “.”用來引用普通物件。 箭頭操作符“->”用來引用指標物件。 舉例子說明一下: 比如,我有一個物件darkray。那麼我可以通過”.”來呼叫darkray類中中的成員變數。 但是如果darkray是指標的話,就不能通過”.”來呼叫,而只能使用”->”

自增操作符箭頭操作符

1.自增和自減操作符 自增(++)和自減(--)操作符為物件加1或減1操作提供了方便簡短的實現方式。有前置和後置兩種使用形式。 前置操作使該運算元加1或減1,操作結果是修改後的值。後置運算元同樣對運算元加1或(減1),但操作後產生運算元原來的、未修改的值作為表示式的結果:

C++中箭頭操作符操作符

    舉個例子: struct MyStruct { int member_a; };   (1)假設有個變數:MyStruct s,這個變數是一個類型別物件,那麼獲取物件

C語言中訪問結構體成員時 點 . 箭頭 -> 的區別

    點(.)是用於結構體變數訪問成員,箭頭(->)是用於結構體指標訪問成員。    例如: #include <stdio.h> int main(void) { struct Smy { int a; };

C++學習筆記42——過載操作符箭頭操作符

 箭頭(->)操作符,看起來很像二元操作符,左運算元是類物件,右運算元是類成員,即使如此,箭頭操作符的過載函式是沒有第二個形參的(第一個是隱含形參this),理解起來有點難度;  函式語句為:  a->b;(其中,b可以是函式或者成員;)  步驟1. 如果a是指

徹徹底底理解C++中指針引用的區別

c++ 區別 include 分享 sin style void png alt #include<iostream> using namespace std; void test(int **p) {   int a=2;   *p=&a;   

C++中typenameclass的區別

type .get true 能夠 class .... ray pla 依賴 在c++Template中很多地方都用到了typename與class這兩個關鍵字,而且好像可以替換,是不是這兩個關鍵字完全一樣呢? 相信學習C++的人對class這個關鍵字都非常明白,clas

C#中MonitorLock以及區別

能夠 program tor 試圖 tro 指定 object span () 原文地址:http://www.cnblogs.com/chengxingliang/p/3150731.html   Monitor對象   1.Monitor.Enter(object)方法

C#中Convertparse的區別

處理 捕獲 用戶 整數 request 存在 query 轉換 中間 Convert.ToInt32()與int.Parse()的區別(1)這兩個方法的最大不同是它們對null值的處理方法: Convert.ToInt32(null)會返回0而不會產生任何異常,但int.P

C# 結構體類的區別

字段 long 姓名 table 衡量 int 結構體 需要 操作 第一個問題:,“結構體”和“類”有啥區別?怎樣辨別是結構體還是類!結構體是一種值類型,而類是引用類型。(值類型、引用類型是根據數據存儲的角度來分的)就是值類型用於存儲數據的值,引用類型用於存儲對實際數據的引

C/C++中nearfar的區別

語言 補充 detail net 計算機體系結構 偏移 單元 體系結構 all C/C++中near和far的區別 關鍵字near和far受目標計算機體系結構的影響。目前編程中使用不多。 near關鍵字創建一個指向可尋址內存低端部分的目標指針。這些

C#中virtualabstract的區別

tool 保留 到你 variable var 入口 printf static write 解讀一 c# 中 Abstract和Virtual比較容易混淆,都與繼承有關,並且涉及override的使用。下面討論一下二者的區別: 一、Virtual方法(虛方法)   vir

C#中AbstractVirtual的區別

保留 一個 strac 虛擬 ati AI 靜態方法 void ride c# 中 Abstract和Virtual比較容易混淆,都與繼承有關,並且涉及override的使用。下面討論一下二者的區別: 一、Virtual方法(虛方法)   virtual 關鍵字用於在基

C語言constdefine的區別

一份 安全 font 預處理 tro span ble 展開 區別 const 定義的是變量不是常量,只是這個變量的值不允許改變是常變量!帶有類型。編譯運行的時候起作用存在類型檢查。 define 定義的是不帶類型的常數,只進行簡單的字符替換。在預編譯的時候起作用,不存在類

C#重載重寫的區別

列表 父類 不同 版權 作者 就是 nal 重新 rri C#重載和重寫的區別 重載就是在同一個類中,方法名相同,參數列表不同。參數列表不同包括:參數的個數不同,參數類型不同等。重載特征: I.方法名必須相同 II.參數列表必須不相同,與參數列表的順序無關 III.返回值類

《21天學通C#》WriteWriteLine的區別

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace WriteLine和Write的區別{ class Progra

C++中指標引用的區別、以及引用取地址符&的區別

一. 指標和引用的區別 對於指標來說,它是一個地址,這個地址是一個數值,那麼就意味這個數值可以為0(空指標),也可以為其他,即指標可以不指向任何東西。 而對於引用來說,他是一個外號,外號一定是“某個存在物體”的外號,所以引用不能為空,即不能存在空引用。例如我們給小明起了個外號:明明,那我們說

[C#]typeof,Gettype()is的區別

typeof 引數是一個型別名稱,比如你自己編寫的一個類 GetType()是類的方法,繼承自object,返回該例項的型別 is 用來檢測例項的相容性(是否可以相互轉換) 例: class Animal { } class Dog : Animal { } void Prin