1. 程式人生 > 其它 >初識指標易混淆點(二)

初識指標易混淆點(二)

技術標籤:c語言c++c語言指標leetcode

探究問題

1.指標的運算
①指標加減整數
指標每加一個整數,就是往後訪問了一個該型別的位元組數。

int main()
{
	int arr[5] = { 0 };
	int *p = arr;
	int i = 0;
	for (i = 0; i < 5; i++)
	{
		*(p + i)=i;
	}
	return 0;
}

在這裡插入圖片描述
②指標減指標
指標減指標算出來的絕對值是兩個指標間的元素個數。
前提條件,兩個指標指向的是同一塊相同的空間,也就是說兩個指標是同一個陣列的。

int main()
{
	int arr[10] = { 0 }
; printf("%d\n", &arr[9] - &arr[0]); return 0; }

在這裡插入圖片描述
③指標和陣列的關係

陣列不是指標,指標也不是陣列,陣列是可以通過指標來訪問的

int main()
{
	int arr[5] = { 1, 2, 3, 4, 5 };
	int *p = arr;
	int i = 0;
	for (i = 0; i < 5; i++)
	{
		printf("%d ", *(p + i));
	}
	return 0; 
}

④二級指標
簡單的來說,二級指標就是存放一級指標的地址

int main
() { int a = 10; int *p = &a; int * *pp = &p; printf("%d", pp); return 0; }

⑤指標陣列
顧名思義,就是存放指標的陣列,本質是一個數組

int main()
{
	int a = 10;
	int b = 20;
	int c = 30;
	int *arr[3] = { &a, &b, &c };
	return 0;
}