亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語(yǔ)言簡(jiǎn)明介紹指針的使用

 更新時(shí)間:2022年06月14日 09:21:05   作者:Emphatic  
C語(yǔ)言這門(mén)課程在計(jì)算機(jī)的基礎(chǔ)教學(xué)中一直占有比較重要的地位,然而要想突破C語(yǔ)言的學(xué)習(xí),對(duì)指針的掌握是非常重要的,本文將具體針對(duì)指針的基礎(chǔ)做詳盡的介紹

1. 指針類(lèi)型

指針以字節(jié)為單位;

指針類(lèi)型決定了解引用時(shí)能訪問(wèn)的空間的大小;也決定了指針的步長(zhǎng)(指針+1走多遠(yuǎn))

2. 野指針

  • 指針未初始化
  • 指針越界訪問(wèn)
  • 指針指向的空間已釋放
int* test()
{
	int a = 10;//野指針
	return &a;
}
int main(){
	int* p =  test();
	//test函數(shù)里的a是局部變量,出函數(shù)時(shí),儲(chǔ)存變量的空間已經(jīng)還給操作系統(tǒng)了
	printf("%d\n",*p);
	//此時(shí)通過(guò)解引用不能再訪問(wèn)到a;
}

如何規(guī)避野指針呢?

  • 指針初始化
  • 小心指針越界
  • 指針指向空間釋放即使置NULL
  • 避免返回局部變量的地址
  • 指針使用之前檢查有效性

3. 指針的運(yùn)算

3.1 指針+-整數(shù)

	int arr[5] = {0,1, 2, 3, 4};
	int* p = arr;
	int i = 0;
	for(i=0; i<5; i++)
	{
		//printf("%d ",*p);
		//p++;
		printf("%d ",*p++);//以上兩種寫(xiě)法相同
	}

3.2指針-指針

得到的是中間元素的個(gè)數(shù),可以用來(lái)求字符串的長(zhǎng)度

int my_strlen(char* arr)
{
	char* start = arr;
	char* end = arr;
	while(*end != '\0')
	{
		end++;
	}
	return end - start;
}

3.3 指針的關(guān)系運(yùn)算

其實(shí)就是指針比較大小。實(shí)際在絕大部分的編譯器上是可以順利完成任務(wù)的,然而我們還是應(yīng)該避免這樣寫(xiě),因?yàn)闃?biāo)準(zhǔn)并不保證它可行。

	float values[5];
	float *vp;
	int i = 0;
	for (vp = &values[0]; vp < &values[5];)
	{
		*vp++ = 0; 
	}

4. 指針數(shù)組

存放指針的數(shù)組

    int a; int b; int c;
	int* arr[3] = {&a,&b,&c};

到此這篇關(guān)于C語(yǔ)言簡(jiǎn)明介紹指針的使用的文章就介紹到這了,更多相關(guān)C語(yǔ)言指針內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論