指针与数组
数组名是一个指向数组中第一个元素的常量指针.
数字数组
将一个指针指向一个数字数组, 指针中存储了数组中第一个元素的地址.
int arr1[] = {1, 2, 3};
int* p = arr1;
printf("%d", *p); // 1 "指针表示法"
printf("%d", p[0]); // 1 "数组表示法"
printf("%d", *(p+1); // 2
字符数组
将一个指针指向一个字符数组, 指针中存储了数组中第一个元素的地址.
char str1[] = "Hello";
char* p = str1;
printf("%c", *p); // 'H'
printf("%c", p[0]); // 'H'
putchar(*(p+1)); // 'e'
printf("%s", p); // "Hello"
字符数组与数字数组的区别就在于:
- 数字数组不需要结束符, 字符数组会自动添加结束符;
- 使用
printf()
函数可以输出一个字符串, 而不能输出一个数字数组.
二维数组
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
int* p = arr[0]; // p需要指向第一个元素, 因此是arr[0]
// p = arr[1];
printf("%d = %d", *p, arr[0][0]);
标签:字符,arr,int,数组,printf,指针
From: https://www.cnblogs.com/khrushchefox/p/17297104.html