#include <stdio.h> #include <stdlib.h> int main(){ //字符數組的使用 char str[] = {'z','b','c','\0'}; //字符數組 printf("str地址:%p str[0]=%c str[0]地址:%p \n",str,str[0],&str[0]); printf("str地址:%p str[1]=%c str[1]地址:%p \n",str,str[1],&str[1]); printf("str地址:%p 打印串:%s\n",str,str); //使用指針 str[0] = 'w'; printf("str地址:%p 打印新串:%s\n",str,str); printf("*********************************************************\n"); //字符指針數組的使用 char *str2[] = {"zhangsan","lisi","wangwu"}; printf("字符串數組元素str2[0]:%s 元素str2[0]地址:%p 字符串指針首地址:%p\n", str2[0],&str2[0],str2); printf("字符串數組元素str2[1]:%s 元素str2[1]地址:%p 字符串指針首地址:%p\n", str2[1],&str2[1],str2); printf("打印*(str2+1)的元素:%s 打印*str2+1的元素:%s 打印該地址:%p \n", *(str2+1), *str2+1, str2+1);//這個是二級指針char** str2本身就是一個指針 指針+1 然后 *;就是取值 //也可以定義一個二級指針 char **pp = str2; printf("打印pp指向的元素地址:%p *pp=%s %s\n", pp, *pp, *(pp+1));//必須是*(pp+1) 不能是*pp+1 否則就是查元素zhangsan的值+1 輸出:hangsan printf("*********************************************************\n"); return 0; }