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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C语言之指针操作

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言之指针操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
存儲屬性

靜態存儲屬性,棧(動態存儲屬性)

靜態存儲屬性:變量在定義時候就分配好空間
棧變量:變量在使用時分配空間,使用后釋放空間

判斷標準:
? ? 靜態存儲屬性變量:全局變量

? ? 局部變量,若有static修飾,則是靜態存儲屬性;
? ? ? ? ? ? ? 若沒有static修飾,則是棧變量

二維數組初始化

? ?static int ?array[3][4] = {{1,2,3,4},{4,5,6,7},{3,4,6,9}};

也可以初始化部分值

? ? static int array[3][4] = {{1},{3},{4}};

也可以對全部數組初始化,但不指定第一維的長度,而第二維的長度必須指定

? ?static int array[][4] = {1,2,3,4,5,6,7,8};


?int a[5]


?a ?數組名:數組的首元素的地址,即a[0]的地址
?&a 數組的地址


?*&a == a這兩者是相等的

?公式:

? ?數組地址 = &數組首元素地址
? ?數組首元素地址 = *數組地址

? ? a ? ? ? ? ? ?&a ? ? ? ?數值上大小是相等的,但含義不同
? ? a+1 ? ? ? ? ?&a+1 ? ? ?這兩個不等,a+1相當于加了一個元素,即為a[1]的地址,&a+1是加了一個數組

? ? 二維數組

? ? int b[5][2] ? ?看成是由5個一維數組組成的數組

? ? 數組名:數組首元素的地址

? ? b:數組首元素地址,即表示第0個一個數組地址

? ? b[0][0] ? ? ?**b這兩者等價 *(*b+0) ? ? *b表示第0個一維數組地址
? ? b[0][1] ? ? ? ?*(*(b+0)+1)


? ? b[i][j] ? ? ? ? *(*(b+i)+j) ? (b+i)第i個數組首元素的地址,*(b+i)+j第i個數組的第j個元素的地址,*(*(b+i)+j)為b[i][j]

? ? b != ?&b[0][0]
? ? b == &&b[0][0]
? ? *b == &b[0][0]
? ? b[0] 相當于 ? int x[2]中的x,第0個一維數組中首元素地址即第0個元素的地址
? ? b[0] == &b[0][0]

? ? 公式:

? ? ? ? 數組地址 == &數組名 = &數組首元素地址
? ? ? ? 數組首元素地址 == *數組地址

? ? ? ? 二維數組地址法:

? ? ? ? int b[5][2]

? ? ? ? 可以看成是有5個一維數組組成的數組

? ? ? ? ? ?數組名 b: 數組首元素地址
? ? ? ? ? ?數組首元素 ? ? ----由兩個int型變量組成的一維數組,即一維數組的地址

? ? ? ? ? ?**b =*&b[0][0] = b[0][0]
? ? ? ? ? ?*b = *&&b[0][0] ? ? ? ? ? ? ? ? *b表示一維數組中第0個元素的地址
? ? ? ? ? ?*b+1 ?= &b[0][1]
? ? ? ? ? ?*(*b+1) == b[0][1]
? ? ? ? ? ?*(b+i)+j ?= &b[i][j]

? ? ? ? ? ?*(*(b+i)+j ) = b[i][j] ?= *(b[i]+j)


總結

以上是生活随笔為你收集整理的C语言之指针操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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