C語言中 * 和 &的實際理解
& 是位操作運算子 *代表指標
在C語言中
&可以用來拿到變數在記憶體中儲存的地址
*可以用來拿到對應地址中的具體內容
比如 :
int a=123;
直接printf printf("a = %d",a); 可以直接獲得 列印 123 內容
直接 printf printf("a = %p",&a); 列印的地址是 0x.............一個十六進位制的地址
那麼我們定義一個指標變數
int *b = NULL;
b = &a; //*b代表指標變數 而 b只能賦值為地址
當我們想要拿到指標 *b 中的內容的時候 printf("%d",*&b); 列印的結果與a變數是一樣的
在之前 我們已經把變數a的值賦給了*b
現在 *b的值也就是 123
如果我們對 *b的值進行重新賦值
*b = 512;
那麼列印結果
printf("a = %d\n",a);
printf("b = %d\n",*b);
// a = 512 b = 512;
為什麼會這樣呢?
因為在賦值之後 指標*b 指向 變數a 這個時候 相當於 指標*b直接指向了 a的記憶體 所以 對指標*b做修改的時候就是對那塊記憶體中的內容進行修改 所以修改了 *b後 變數a中的內容也也會被修改
最終總結我的理解 只有一句話
&是為了拿到變數的記憶體地址 而 *就是為了拿到對應記憶體地址中的內容
相關文章
- C語言中的*和&符號C語言符號
- c語言中的getchar()和EOFC語言
- C語言中,&和&&都是做什麼的?C語言
- C語言中continue的理解(fishing_1)C語言
- c語言中的&的用法C語言
- C語言中“陣列名”和“&陣列名”C語言陣列
- C語言中const和#define的區別C語言
- C語言中的getchar和putchar詳解C語言
- C語言中的Const常量和優化C語言優化
- C語言中的置0和置1操作C語言
- C語言中sync()C語言
- C語言中有C語言
- 乾貨好文帶你理解C語言中的連結串列C語言
- 解析C語言中的sizeofC語言
- C語言中extern的用法C語言
- C語言中&&,||,&,| 的區別C語言
- 【C】 30_C語言中的字串C語言字串
- C語言中pi=&j和*pi=j的區別C語言
- C 語言中的 time 函式函式
- c語言中的關鍵字C語言
- C語言中的檔案流C語言
- C語言中的abort函式C語言函式
- 解析C語言中的sizeof (轉)C語言
- c語言中文和ascii碼字元分離C語言ASCII字元
- C語言中函式printf()和函式scanf()的用法C語言函式
- C 語言中的指標和記憶體洩漏指標記憶體
- c語言中sizeof詳解C語言
- C語言中malloc與freeC語言
- C 語言中 static 的作用介紹
- C語言中qsort函式的用法C語言函式
- C語言中的static 詳細分析C語言
- C語言中的命令列引數C語言命令列
- C語言中史上最愚蠢的BugC語言
- C 語言中返回字串函式的四種實現方法字串函式
- 在C語言中實現泛型程式設計C語言泛型程式設計
- C語言中函式的返回值C語言函式
- 淺談C語言中函式的使用C語言函式
- 回應《C語言中typedef用法的疑惑》C語言