c语言手写指针和乘号,C-学会使用指针(示例代码)
先說:唯手熟爾
指針
指針存儲著一個內存空間的地址
定義一個指針
int a;
int * p;
定義一個指針,只需在變量前面加一個 * 號。這里的指針只能存儲一個存放整數的內存空間的地址
指針如何存儲地址
p = &a;
&叫取地址符。這樣整形指針p獲得了整型變量a的地址。理解為指針p指向了整型變量a
可以通過指針p來操作變量a。
例如,輸出變量a的值
int a=10;
int * p;
p=&a;
printf("%d",* p);
這里的 * 號是間接訪問運算符。作用是取得指針p所指向的內存中的值。
C語言中 * 號有三個用途
乘號。加減乘除
聲明指針變量。在定義指針變量時使用,如:int * p;
取得指針所指向的內存中的值。簡介訪問運算符。例如printf("%d",* p);
malloc函數
在內存中存儲整數10
int a=10;
malloc(4);
使用malloc函數會從內存中申請分配指定字節大小的內存空間。此處申請的是4個字節。不知道int類型4個字節還可以通過sizeof(int)獲取int類型所占字節數。申請好4個字節空間后,就需要用一個指針來指向這個空間。
int * p;
p=(int * )malloc(sizeof(int));
需要注意的是,malloc函數返回類型是void * 類型。void * 表示未確定類型的指針。在C語言和C++,可被強制轉換為任何其他類型的指針。此處我們將其強制轉化為整形指針
指針存儲的是某空間地址,那為什么分不同類型的指針呢?
是為了讓系統知道某空間應該取多少個連續內存作為一個數據。
例子
存儲整數10的代碼如下
#include
#include
int main()
{
int *p;
p=(int * )malloc(sizeof(int));
* p=10;
printf("%d",* p);
return 0;
}
為什么要用如此復雜的辦法存儲數據?
預先的方法我們必須預先準確的知道所需變量的個數,也就是說我們必須定義出所有變量。定義一百個,程序就只能存儲一百個。通過malloc函數我們可以在程序運行的過程中根據實際情況來申請空間
最后:個人覺得指針和malloc函數誰都離不開誰。malloc申請的內存需要指針指示,而指針用來指示一個不確定的空間才發揮了真正作用。
總結
以上是生活随笔為你收集整理的c语言手写指针和乘号,C-学会使用指针(示例代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 德国留学语言c1,德国留学申请,关于语言
- 下一篇: android getinstance