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