//GCC 编译方式: C:\MinGW\project>gcc -std=c99 main.c
//编码环境 GBK

#include <stdio.h>
int main(){

int array[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
     //遍历二维数组,并打印
	 for(int i=0;i< 3;i++){
		for(int j=0;j<4;j++){
			printf("array[%d][%d]=%d\n",i,j,array[i][j]);
		}
	}
/* 
输出 :
array[0][0]=0
array[0][1]=1
array[0][2]=2
array[0][3]=3
array[1][0]=4
array[1][1]=5
array[1][2]=6
array[1][3]=7
array[2][0]=8
array[2][1]=9
array[2][2]=10
array[2][3]=11 
*/
	
//字符串的初始化
//char str[100] ; //定义一个字符串
//char str[100] = {'h','e','l','l','o'}; //定义一个字符串,并初始化
char str[100] = "hello"; //多种初始化
     str[0] = 'H';
     str[1] = 'e';
     str[2] = '\0';       //遇到\0,字符串就结束了
     str[3] = 'l';
     str[4] = 'o';
	 printf("%s\n",str); //字符串就是以\0结尾的数组
	 //输出 He
	 printf("str =%d\n",sizeof(str)); 
	 //输出 str =100
	 
	 //打印字符数组大小
	 char str1[] = "Hello";
	 printf("str1 =%d\n",sizeof(str1)); 
	 // 输出 str1 =6
	 
	 //固定字符数组大小,研究字符串初始化后是什么东西
	 char str2[10] = "Hello";
	 printf("str2 =%d\n",sizeof(str2)); 
	 //输出 str2 =10
     printf("str2[4]  char=>%c HEX=>%x\n",str[4],str[4]);
     printf("str2[5]  char=>%c HEX=>%x\n",str[5],str[5]);
     printf("str2[6]  char=>%c HEX=>%x\n",str[6],str[6]);
     printf("str2[7]  char=>%c HEX=>%x\n",str[7],str[7]);
	 //输出:
	 // str2[4]  char=>o HEX=>6f
	 // str2[5]  char=>  HEX=>0 
	 // str2[6]  char=>  HEX=>0
	 // str2[7]  char=>  HEX=>0
	 
	 //修改字符串内容
	 char str3[99]="Hello World!";
	 printf("%s",str3);
	 printf(str3);
	 str3[4]='A';
	 printf(str3);
	 //输出 Hello World!Hello World!HellA World!
    
	printf("\n数组逆置:\n");
	int  low=0;
    int high=11; //注意上面的那个字符,11位之后就是\0了
    int tmp_var;
    while(low<high){
        tmp_var    =str3[low];
        str3[low]  =str3[high];
        str3[high]   =tmp_var;
        low++;
        high--;
	 }
	 printf(str3);
     //输出:
	 //数组逆置:
     //!dlroW AlleH

	 char str4[100] ="你好世界";
	 printf("\n%s\n",str4);
	 for(int i=0;i<13;i++){
		 printf("%x\n",str4[i]);
	 }

	 /*
	 GBK编码环境:
	你好世界
	ffffffc4
	ffffffe3
	ffffffba
	ffffffc3
	ffffffca
	ffffffc0
	ffffffbd
	ffffffe7
	0
	0
	0
	0
	0
你C4E3
好BAC3
 20
世CAC0
界BDE7

	 */
	 //用GBK编码显示 汉字
	char str5[100];
    str5[0]=0xc4;
    str5[1]=0xe3;
    str5[2]=0;
    printf(str5);	
    //输出 你
	 
}