数组指针(自用)

93 阅读1分钟

image.png sta

f354dd465aeed16f76064943390d1423.png

数组定义

数组定义时[ ]和{ }不能都为空

f354dd465aeed16f76064943390d1423.png image.png

定义字符串时[ ]不能省略;定义出现问题可能不会报错,就很烦,要注意定义的格式!!

strlen

使用strlen()时

获取字符串的长度但不包括 '\0' ,他是遇见 '\0'就停止,因此存在局限性,如果一个数组在非结尾处存在'\0'那么计数会在此处停止。

函数传递数组;

int main() {
	/*定义一个函数,让数组逆置*/
	int arr[] = { 1,2,3,4,5,6,7,8,9 };
	int length = sizeof(arr) / sizeof(int);
	reverseArr(arr, length);

	return 0;
}
//                       int  * arr    形参定义成指针也可以
void reverseArr(int arr[], int length) {
	//int len = sizeof(arr) / sizeof(int);
	//printf("len=%d\n", len);//2
	int i = 0;// 首元素的索引
	int j = length - 1;//尾元素的索引
	int temp;// 中间变量
	while (1) {
		temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
		i++;
		j--;
		if (i >= j) { // 注意条件
			break;
		}
	}


//输出
	for (int i = 0; i < length; i++) {
		printf("%d ", arr[i]);
	}


}


指针与数组的关系

image.png

有关数组改变数值的点

数组名是个常量,一旦定义好数组后,不可以给数组赋值为一个新的数组,但是可以通过角标的方式获取和修改数组的元素

image.png

image.png

image.png

image.png