c++

前言:
總是忘不了,上初中時立下的夢想,我恨自己的墮落,我恨自己的懦弱。每看一次《根鳥》,我都會哭一次,我就是那個根鳥。我好悔恨。

2016-8-4
1.左值、右值
左值,沒有內存實體的左值不存在的。Int a=3;
右值,可以有內存實體,也可以沒有內存實體. A+1,&a,100,右值,都在寄存器
CPU處理計算,內存是存儲的。
寄存器的內容不可以取內存地址, &(a+1)非法

2.內嵌彙編
在代碼中用匯編替代:data = num + 4;

_asm
{
    mov eax,num  //num移動到eax
    add eax,4   //eax 的值自動+4
    mov data,eax //eax的值移動到data
}

3.調試
調試,下斷點。斷點,可以中斷程序執行,觀察內部過程。必須具備調試能力。學會查看內存,CPU寄存器,反彙編。

4.變量的賦值
變量的賦值就是拷貝二進制,內存之間不可以直接拷貝,必須通過CPU,變量的值發生變化,就是變量的那一段內存,存放不同的二進制數據

5.Define與Const

#define  K  100.0
const int Knum = 100.0;//賦值號會自動進行數據類型轉換
const是僞常量,可以改變它的值,不可以用於數組,define可以
改變僞常量:
const int num = 10;//僞常量
     int *p = (int *)#//C++強類型
     *p = 3;//指針賦值,const不靠譜
      printf("%d", num);
const常量只有在初始化的時候是左值,const常量有內存實體
C++強類型,C弱類型,區別是賦值的時候,C++會嚴格檢測類型

6.printf
printf不會自動進行數據類型轉換,打印的變量必須匹配打印方式
printf(“%d,%d”, 10.9, 10);//printf,第一個錯誤,第二個連帶錯誤

7.指針
指針是一種數據類型,類型決定了大小,決定了二進制數據的解析方式,指針變量存儲的是地址,因爲類型,同一個地址也有所不同。

int num = 100;
double *p1 = #
int  *p2 = #
float *p3 = #
printf("%f\n", *p1);
printf("%d\n", *p2);
printf("%f\n", *p3);

2016-8-5
8.頭文件

#include <limits.h>//處理整數字符
#include <float.h> //處理浮點數

9.極限的意義
//所有的數據操作,賦值,計算,極限範圍之內不會錯誤
//極限範圍之外,偶爾正確,一定出錯

10.補碼、階碼
補碼存儲負數,階碼存儲實數
變量存儲,低位在低字節,高位在高字節

發佈了47 篇原創文章 · 獲贊 34 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章