日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【C语言学习】国嵌21__指针基础

發布時間:2024/4/14 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C语言学习】国嵌21__指针基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

一、指針基礎

變量只是一段存儲空間的別名,那么是不是必須通過這個別名才可以使用這段存儲空間?答案是否定的。我們還可以通過指針也就是地址的方式來訪問某段存儲空間。

#include?<stdio.h>int?main() {int?i?=?5;int*?p?=?&i;printf("%d,?%08X\n",?i,?p);*p?=?10;printf("%d,?%08X\n",?i,?p);return?0; }

運行結果:

5, 0022FF48
10, 0022FF48

2、指針的本質

# 指針在本質上也是一個變量

# 指針需要占用一定的內存空間

# 指針用于保存內存地址的值

不同類型的指針占用內存空間的大小相同。

#include?<stdio.h>int?main() {int?i;int*?pI;char*?pC;float*?pF;pI?=?&i;*((int?*)0x22ff4c)?=?100;?printf("%0X,?%0X,?%d\n",?pI,?&i,?i);printf("%d,?%d,?%0X\n",?sizeof(int*),?sizeof(pI),?&pI);printf("%d,?%d,?%0X\n",?sizeof(char*),?sizeof(pC),?&pC);printf("%d,?%d,?%0X\n",?sizeof(float*),?sizeof(pF),?&pF);return?0; }

運行結果:

22FF4C, 22FF4C, 100
4, 4, 22FF48
4, 4, 22FF44
4, 4, 22FF40

程序實現的功能:1、指針占用的內存空間2、指針的地址3、通過*號寫內存

*號的意義

# 在指針聲明時,*號表示所聲明的變量為指針

# 在指針使用時,*號表示取指針所指向的內存空間中的值。*號類似一把鑰匙,通過這把鑰匙可以打開內存,讀取內存中的值

# “*”還代表乘號

3、傳值調用與傳址調用

# 指針是變量,因此可以聲明指針參數

# 當一個函數內部需要改變實參的值,則需要使用指針參數

# 函數調用時實參值將復制到形參

# 指針適用于復雜數據類型作為參數的函數中

利用指針實現變量交換函數:

#include?<stdio.h>#define?SWAP(a,?b)?{int?t?=?a;?a?=?b;?b?=?t;}?//宏定義也可以實現變量交換void?swap(int?*a,?int?*b)?//函數定義實現變量交換 { int?t?=?*a; *a?=?*b; *b?=?t; }int?main() { int?i?=?1;? int?j?=?9;printf("%d,?%d?\n",?i,?j);swap(&i,?&j);printf("%d,?%d\n",?i,?j);return?0; }

4、常量與指針

# const int *p; ? ? ? //p可變,p指向的內容不可變

# int const *p; ? ? ? //p可變,p指向的內容不可變

# int *const p; ? ??/p不可變,p指向的內容可變

# const int * const p;? //p和p指向的內容都不可變

記憶口訣:左數右指

當const出現在*號左邊時指針指向的數據為常量,當const出現在*后右邊時指針本身為常量

指針小結:

# 指針是C語言中一種特別的變量

# 指針所保存的值是內存的地址

# 可以通過指針修改內存中的任意地址內容



轉載于:https://my.oschina.net/u/141132/blog/265535

總結

以上是生活随笔為你收集整理的【C语言学习】国嵌21__指针基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。