一、字符指针
普通用法:指向一个字符
int main() { char ch = 'w'; char* pc = &ch; *pc = 'm'; printf("%c\n", ch); return 0; }
特殊用法:存入字符串
此时将一个字符串存入一个字符指针,本质上是把这个字符串的首字母的地址存放到字符指针。
TIP:C语言如何打印字符串?
默认给出首元素地址,并用%s打印即可。
一道笔试题:
TIP:常量字符串
字符常量 : 由一对单引号括起来的单个字符,如'a', 'B'
字符串常量: 由一对双引号括起来的多个字符的序列,如"a",“I Love u”
注意字符串常量表示不可更改。
解析:
数组是先开辟空间再存放内容,内容一样但是地址不同。
指针是先有内容再用指针去指向内容的首地址,所以内容相同地址也相同。
二、指针数组
概念:指针数组是一个存放指针的数组。
指针数组的使用:
int main() { int arr1[] = { 1,2,3,4,5 }; int arr2[] = { 2,3,4,5,6 }; int arr3[] = { 3,4,5,6,7 }; int* arr[3] = { arr1,arr2,arr3 }; for (int i = 0;i<3; i++) { for (int j=0;j<5;j++) { printf("%d ", *(arr[i] + j)); } printf("\n"); } return 0; }
TIP:arr[2]和2[arr]
int main() { int arr[4] = { 1,2,3,4 }; printf("%d\n", arr[2]); printf("%d\n", 2[arr]); return 0; }
输出结果一样!
理解:【】就是一个二元操作符,并且支持交换律。