色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言-指針作為函數形參類型

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 10:05 ? 次閱讀

1. 前言

C語言函數里最常用就是指針傳參和返回地址,特別是字符串處理中,經常需要封裝各種功能函數完成數據處理,并且C語言標準庫里也提供了string.h 頭文件,里面包含了很多字符串處理函數;這些函數的參數和返回值幾乎都是指針類型。這篇文章就介紹如何使用指針作為函數參數、并且使用指針作為函數返回值。

下面通過幾個示例代碼來演示用法。

2. 通過指針間接修改主函數里局部變量空間的值

#include 
#include 
void func(int *p);
int main()
{
	int a=100;
	func(&a);
	printf("a=%d\n",a); //200
	return 0;
}

void func(int *p)
{
	printf("p=%d\n",*p);
	*p=200;
}

3. 在子函數里通過指針類型間接交換main函數里局部變量空間的值

#include 
#include 
void func(int *a,int *b);
int main()
{
	int a=100,b=200;
	func(&a,&b); //func(100,200)
	printf("a=%d,b=%d\n",a,b);
	return 0;
}

void func(int *a,int *b)
{
	int c;
	c=*a;
	*a=*b;
	*b=c;
}
//return語句只能返回一個值
//如果函數想返回多個值,可以使用指針(形參)實現。

4. 函數返回指針類型

#include 
#include 
char *func(char *p);

int main()
{
	char str[]="1234567890";
	char *p;
	p=func(str);
	printf("%s\n",p); //
	return 0;
}

char *func(char *p)
{
	p+=3; //p向后偏移3個字節
	return p;
}

5. 編寫一個計算字符串長度的函數

函數功能: 傳入字符串,返回字符串的長度。

與strlen函數功能一樣即可。

#include 
#include 
int my_strlen(char *p); //函數聲明
int main()
{
	char buff[100];
	int len;
	
	printf("請輸入字符串:");
	scanf("%s",buff);
	
	len=my_strlen(buff);
	printf("len=%d\n",len);
	return 0;
}

//每個函數的功能要單一

//計算字符串長度。  字符串特點結尾是有'\0'
//"1234567890"
int my_strlen(char *p)
{
	char *str=p;
	while(*str++!='\0'){}
	return str-p-1;
}

6. 編寫一個字符串排序函數

函數功能: 傳入字符串,在函數里實現字符串從大到小或者小到大排序。

注意: 從大到小或者小到大排序可以通過函數形參區分。

#include 
#include 
int my_strlen(char *p); //函數聲明
void str_sort(char *p,char flag);//函數聲明
int main()
{
	char buff[100];
	int len;
	
	printf("請輸入字符串:");
	scanf("%s",buff);
	
	//進行排序
	str_sort(buff,0);
	printf("從小到大排序=%s\n",buff);
	str_sort(buff,1);
	printf("從大到小排序=%s\n",buff);
	return 0;
}

//每個函數的功能要單一

//計算字符串長度。  字符串特點結尾是有'\0'
//"1234567890"
int my_strlen(char *p)
{
	char *str=p;
	while(*str++!='\0'){}
	return str-p-1;
}

/*
函數功能: 實現字符串排序.支持從小到大或者大到小
函數形參: 
	char *p  將要排序的字符串
	char flag  選擇排序方式  0表示從小到大排序  1表示大到小排序
*/
void str_sort(char *p,char flag)
{
	int len;
	int i,j,tmp;
	len=my_strlen(p);
	for(i=0;ip[j+1])
				{
					tmp=p[j];
					p[j]=p[j+1];
					p[j+1]=tmp;
				}
			}
		}
	}
}

//unsigned char a; // 0~255   占1  =8位    1111 11111
//char a; //-128 ~ +127  
;i++)>

7.變量默認的系統初始化值

#include 
#include 
int a1;
int main()
{
	int a2;
	static int a3;
	printf("a1=%d\n",a1); //0
	printf("a2=%d\n",a2); //隨機值
	printf("a3=%d\n",a3); //0
	return 0;
}
/*
全局變量默認值是0
局部變量默認值是隨機值(系統沒有賦值)
靜態變量默認值是0
*/

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136692
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62573
  • 指針
    +關注

    關注

    1

    文章

    480

    瀏覽量

    70551
收藏 人收藏

    評論

    相關推薦

    C語言指針作為怎么改變其指向的地址

    ]?=?{1,2,3};void?fcn(參數);void? main (){????int*?a;????fcn(輸入參數a)} 執行完fcn后,使參數的地址改變,這個功能怎么來實現呢? 首先說明結論:使用二級指針。 為了更好的理解這個問題,我們首先來學習一下指針最經典
    的頭像 發表于 10-09 11:54 ?5147次閱讀

    函數的實參與

    和實參出現不同類型時,則按照不同類型數值的賦值規則進行轉換。主調函數在在調用函數之前,應對被調函數做原型聲明。實參向
    發表于 10-18 20:15

    指針作為函數參數

    指針作為函數參數 大多數C程序員開始使用指針時是用它們實現函數的參數,所謂可變參數。為了理解可
    發表于 07-29 11:49 ?2711次閱讀

    C語言指針函數函數指針詳細介紹

    C語言指針函數函數指針詳細介紹。。。。。。。
    發表于 03-04 15:27 ?5次下載

    c語言函數指針定義,指針函數函數指針的區別

     往往,我們一提到指針函數函數指針的時候,就有很多人弄不懂。下面就由小編詳細為大家介紹C語言
    發表于 11-16 15:18 ?3624次閱讀

    C語言教程之函數指針變量與指針函數的區別(下篇)

    z=(*pfun)(x,y); //調用函數指針變量,實參x和y的值傳遞給a和b printf(“max=%dn”,z); //
    發表于 05-22 07:30 ?1986次閱讀

    C語言總結_數組與函數練習題

    字符串標準處理函數介紹(string.h)、指針和數組當做函數,指針定義、
    的頭像 發表于 08-14 09:36 ?827次閱讀

    C語言-函數的定義、聲明、傳

    C語言函數是非常重要的知識點,一個完整的C語言程序就是由主函數和各個子
    的頭像 發表于 08-14 09:57 ?1936次閱讀

    C語言-函數的可變形(不定形)

    這篇文章介紹C語言函數的不定參數、可變參數 ,實現printf一樣的傳效果。
    的頭像 發表于 08-14 09:58 ?2648次閱讀

    C語言-void類型作為萬能指針類型

    void類型在基本數據類型里是`空類型`,`無類型`; void類型常用來當做函數的返回值,
    的頭像 發表于 08-14 10:04 ?1799次閱讀

    數組/指針的傳問題

    自定義函數類型,要和函數調用中傳過去的實參類型相對應
    的頭像 發表于 08-17 10:37 ?1076次閱讀

    指針進階第五站:函數指針!

    定義一個函數指針,指向的函數有兩個int并且返回一個函數
    發表于 08-17 15:58 ?531次閱讀

    C語言函數參數介紹

    C語言數組元素作函數實參 數組元素可以用作函數實參,不能用作。
    的頭像 發表于 03-10 14:30 ?2372次閱讀

    C語言數組元素的指針

    C語言調用函數時虛實結合的方法都是采用“值傳遞”方式,當用變量名作為函數參數時傳遞的是變量的值,當用數組名
    的頭像 發表于 03-10 14:45 ?895次閱讀

    函數類型函數指針類型的區別

    平時用的更多的是函數指針類型,比如作為函數參數傳入回調函數等等。實際上
    發表于 10-24 14:27 ?390次閱讀
    主站蜘蛛池模板: 欧美人妇无码精品久久| 婷婷五月久久精品国产亚洲 | 久久aa毛片免费播放嗯啊| 男神插曲女生软件完整版| 色欲人妻AAAAAAA无码| 亚洲综合久久一本伊伊区| 99视频久九热精品| 国产午夜久久影院| 欧美Av无码高清在线| 亚洲成人免费在线| 99久久精品费精品国产| 国产欧美日韩综合精品一区二区 | 热思思| 亚洲精品午睡沙发系列| www.三级| 精品在线观看一区| 日日久久狠狠8888偷偷色| 亚洲一区免费观看| 成年美女黄网站色app| 久久国产欧美日韩精品免费| 强开少妇嫩苞又嫩又紧九色| 亚洲欧美强伦一区二区另类| 成人在线精品视频| 快播性爱电影| 亚洲 日韩 色 图网站| jiz在线播放jizijzz| 红尘影院手机在线观看| 青青草原直播| 中文字幕日本久久2019 | 国产精品97久久AV色婷婷| 伦 乱真实故事| 亚洲精品视频观看| 短篇合集纯肉高H深陷骚| 蜜柚视频网在线观看免费| 亚洲色欲啪啪久久WWW综合网| 俄罗斯videosbest8| 免费啪视频观试看视频| 一本道本线中文无码| 国产婷婷一区二区在线观看| 热中文热国产热综合| 99久久精品毛片免费播放|