成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

c<8>指針-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)成立于2013年,先為禮縣等服務建站,禮縣等地企業(yè),進行企業(yè)商務咨詢服務。為禮縣企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

2,指針的賦值

2.1C語言允許指針賦值為0(初始化)

2.2指針賦值例

2.3輸出指針的值

3,用指針引用數(shù)組

3.1利用指針輸入數(shù)組

3.2優(yōu)先級問題?

4.多維數(shù)組

5.字符串

5.1通過指針引用字符串

4.函數(shù)中對指針的應用

4.1將指針變量作為函數(shù)參數(shù)

4.1.1指針的定義

4.1.2指針的引用

4.2將數(shù)組傳遞至函數(shù)中

5.函數(shù)指針

6.返回指針的函數(shù)


1,指針本身是一個地址,以int的形式保存

(32位用四個字節(jié)儲存,64位操作系統(tǒng)用八個字節(jié)儲存)

2,指針的賦值

一般來說指針是無法直接賦值的

當然可以用這種形式來強制賦值

(int*) p = 101;
2.1C語言允許指針賦值為0(初始化)
int* a = 0;

常用 :(防止未初始化指針破化內存

if ( p != 0 )
    *p+1=xxxx;

宏定義

#define NULL 0

2.2指針賦值例
#includevoid main()
{
	char c = '9', * sp1, * sp2;
	sp1 = &c; sp2 = sp1;
	printf("%c", *sp2);
}
2.3輸出指針的值
pointer_1=&a;	//把變量a的地址賦給指針變量pointer_1
	pointer_2=&b;	//把變量b的地址賦給指針變量pointer_2 
	printf("a=%d,b=%d\n",a,b);	//輸出變量a和b的值
	printf("*pointer_1=%d,*pointer_2=%d\n",*pointer_1,*pointer_2);
	//輸出變量a和b的值
3,用指針引用數(shù)組

當我們定義一個數(shù)組時

int a[100]={};

a是數(shù)組的首地址,且是以常量指針的形式保存(不能通過a++等來更改

所以當我們針對數(shù)組進行一些操作時,通常將之復制到變量指針(P)上。

3.1利用指針輸入數(shù)組
#includeint main()
{	int i,a[10],*p=a;	//p的初值是a,p指向a[0]
	printf("please enter 10 integer numbers:");
	for(i=0;i<10;i++)
	scanf("%d",p++);



	p=a;				//重新使p指向a[0]
	for(i=0;i<10;i++,p++)
	printf("%d ",*p);
	printf("\n");
	return 0;
}

注意經過一系列 的p++會使得p指向數(shù)組的末位。需要讀取數(shù)組需要重新使指針指向數(shù)組的首地址

3.2優(yōu)先級問題?

++和*為同優(yōu)先級

從左到右依次執(zhí)行

4.多維數(shù)組

5.字符串 ?5.1通過指針引用字符串
#includeint main()
{	char string[]="I love China!";	//定義字符數(shù)組sting
	printf("%s\n",string);		//用%s格式聲明輸出string,可以輸出整個字符串
	printf("%c\n",string[7]);		//用%c格式輸出一個字符數(shù)組元素 
	return 0;
}

相當于

#includeint main()
{	char *string="I love China!";	//定義字符指針變量string并初始化
	printf("%s\n",string);		//輸出字符串
	return 0;
4.函數(shù)中對指針的應用 4.1將指針變量作為函數(shù)參數(shù) 4.1.1指針的定義

定義函數(shù)時需要同時定義指針變量

void swap(int *p1,int *p2)	
{
...
}

值得注意的是:如下的*temp不指向變量而直接賦值,由于temp指向位置為隨機,可能會覆蓋原有數(shù)據(jù),計算機并不允許此類操作

//錯誤示范
void swap(int *p1,int *p2)
{	int *temp;
	*temp=*p1;
 	*p1=*p2;
	*p2=*temp;
}
4.1.2指針的引用

不需要加*

swap(pointer_1,pointer_2);
4.2將數(shù)組傳遞至函數(shù)中
void inv(int x[],int n)		//形參x是數(shù)組名
{	int temp,i,j,m=(n-1)/2;
	for(i=0;i<=m;i++)
	{	j=n-1-i;
		temp=x[i]; x[i]=x[j]; x[j]=temp;	//把x[i]和x[j]交換
	}
	return;
}
void inv(int *x,int n)			//形參x是指針變量
{	int *p,temp,*i,*j,m=(n-1)/2;
	i=x; j=x+n-1; p=x+m;
	for(;i<=p;i++,j--)
	{	temp=*i; *i=*j; *j=temp;}	//*i與*j交換
	return;
}

they are?the same

5.函數(shù)指針

we can use pointers to invoke?defined functions

just like

int max(int,int);	//函數(shù)聲明
int (*p)(int,int);	//定義指向函數(shù)的指針變量p

p=max;	//使p指向max函數(shù)

c=(*p)(a,b);		//通過指針變量調用max函數(shù)
6.返回指針的函數(shù)
int *a(int x,int y);

x和y是函數(shù)的形參,調用函數(shù)可以返回一個Int*型指針

we must return an adress? ##

float *search(float (*pointer)[4],int n)
//形參pointer是指向一維數(shù)組的指針變量
{	float *pt;
	pt=*(pointer+n);	//pt的值是&score[k][0]
	return(pt);
}

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網頁題目:c<8>指針-創(chuàng)新互聯(lián)
文章來源:http://jinyejixie.com/article48/hiohp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制網站、網站導航、云服務器、ChatGPT、軟件開發(fā)、做網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
绥宁县| 呈贡县| 南皮县| 葫芦岛市| 建平县| 嵩明县| 甘南县| 东安县| 宁南县| 平武县| 襄垣县| 建昌县| 油尖旺区| 澳门| 达日县| 清水河县| 闵行区| 和静县| 吴忠市| 凤翔县| 垦利县| 大田县| 福海县| 定远县| 关岭| 沂源县| 乌拉特前旗| 岢岚县| 阳谷县| 哈巴河县| 长丰县| 涪陵区| 德令哈市| 静乐县| 罗田县| 新闻| 利辛县| 封开县| 张北县| 苏尼特右旗| 贵港市|