pragma mark 指針變量復(fù)用
pragma mark 概念
pragma mark 代碼
#include <stdio.h>
void change();
void change2(char *p);
void change3(int values[]);
void change4(int *p);
char *demo();
char *demo2();
int main()
{
#warning
/*
只要是數(shù)據(jù)類型就具有3個(gè)特點(diǎn)
1. 可以用來(lái)定義變量
2. 可以用來(lái)作為形參和實(shí)參
3. 作為返回值
*/
/*
int num = 10;
change(num);
printf("num = %i\n",num);
// char *name = "lyh"; // 指針指向一個(gè)字符串 那么這個(gè)字符串是一個(gè)常量 不可以修改
// change2(name);
int nums[] = {1,3,5};
// change3(nums); // 數(shù)組名就是數(shù)組的地址
change4(nums); // 數(shù)組名就是數(shù)組第0個(gè)元素的地址
printf("nums[0] = %i\n",nums[0]);
*/
#warning 指針作為返回值
char *name = demo();
printf("name = %s\n",name);
char *name2 = demo2();
printf("name2 = %s\n",name2);
return 0;
}
char *demo2()
{
char name[] = "lyh"; // 存儲(chǔ)在棧區(qū) 函數(shù)調(diào)用完會(huì)釋放
return name;
}
char *demo()
{
char *name = "lyh"; // 存儲(chǔ)在常量區(qū) 所以能打印出來(lái)
return name;
}
// 專業(yè)
void change4(int *p)
// int *p \
== nums; \
== int*p == &nums; \
== int *p == &nums[0]
// int *p; p = nums; p == nums;
{
p[0] = 998;
}
// 不專業(yè)
void change3(int values[])
{
values[0] = 998;
}
/*
void change2(char *p)
{
*p = "lys"; // 直接掛了
}
*/
void change(int value)
{
value = 55;
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。