一、概念
/*
如何定義指針變量
普通變量
數(shù)據(jù)類型 變量名稱;
指針變量
數(shù)據(jù)類型 * 變量名稱;
數(shù)據(jù)類型 : 說(shuō)明 將來(lái)指針變量能夠保存 什么類型的變量的地址
注意 : 指針變量是什么類型 : 那么將來(lái)就只能保存什么類型的變量的地址
例如 : 指針變量是int, 那么將來(lái)就只能保存 int類型變量的地址
* : 沒(méi)有任何特殊含義, 僅僅是為了標(biāo)識(shí) 這是一個(gè)指針變量
變量名稱 : 用于區(qū)分不同的變量
int num; // 普通變量 num = 10;
int * p; // 指針 , 在64位的編譯器下 占用8個(gè)字節(jié)
p = # // 將num的地址 存儲(chǔ)到p這個(gè)地址中
(重點(diǎn) : p = &num --- *p == num)
*/
二、代碼
#include <stdio.h>
// 基本數(shù)據(jù)類型 作為函數(shù)的參數(shù) 是值傳遞, 在函數(shù)中修改形參的值 不會(huì)影響到 外面實(shí)參的值
void change(int vlaue)
{
vlaue = 55;
}
// 數(shù)組作為函數(shù)的參數(shù) 是地址傳遞,如果是地址傳遞 在函數(shù)中修改 形參的值 會(huì)改變影響到外面實(shí)參的值
void change2(int vlaue[])
{
vlaue[1] = 55;
}
#pragma 指針
// 指針就是專門用于保存地址的
void change3(int *p) //用什么接收地址? 指針 = 0ffc12
{
*p = 33;
}
int main()
{
#pragma 1.需求 : 定義一個(gè)方法,在方法中修改傳入的實(shí)參的值
/*
// int num = 10;
int num[] = {1,3};
printf("修改前 num = %i\n",num[1]);
change2(num);
printf("修改后 num = %i\n",num[1]);
*/
int num = 10;
printf(" 前 num = %i\n",num);
change3(&num);
printf(" 后 num = %i\n",num);
/*
如何定義指針變量
普通變量
數(shù)據(jù)類型 變量名稱;
指針變量
數(shù)據(jù)類型 * 變量名稱;
數(shù)據(jù)類型 : 說(shuō)明 將來(lái)指針變量能夠保存 什么類型的變量的地址
注意 : 指針變量是什么類型 : 那么將來(lái)就只能保存什么類型的變量的地址
例如 : 指針變量是int, 那么將來(lái)就只能保存 int類型變量的地址
* : 沒(méi)有任何特殊含義, 僅僅是為了標(biāo)識(shí) 這是一個(gè)指針變量
變量名稱 : 用于區(qū)分不同的變量
*/
/*
int num; // 普通變量
num = 10;
int * p; // 指針 , 在64位的編譯器下 占用8個(gè)字節(jié)
// 千萬(wàn)注意 : 指針變量 只能存儲(chǔ)地址
p = # // 將num的地址 存儲(chǔ)到p這個(gè)地址中
// p = &num
printf("num = %p\n",&num);
printf("p = %p\n",p);
// 指針變量前的 *號(hào) 代表訪問(wèn)指針變量 指向的那一塊存儲(chǔ)空間(num)
// *p == num
*p = 55;
// printf("num = %i\n",num);
printf("num = %i\n",*p);
*/
return 0;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。