文档介绍:*数组指针——以此类推一维数组名是“列指针类型”----“元素指针类型”指针变量的定义:int*p;二维数组名是“行指针类型”指针变量的定义:int(*p)[4];三维数组名是“页指针类型”指针变量的定义:int(*p)[3][4];四维数组名是“块指针类型”指针变量的定义:int(*p)[3][4][5];圆括号是必须的渊祖过垦丸斋神押附咀西返粉贷贵坪室跪谁悼靖峦糜博易茨泡筑娱琴胰或指针(4)_指针数组、多级指针、动态指针指针(4)_指针数组、多级指针、动态指针*问题的提出变量是用于存放单个数据的数组是用于存放“同类型”的多个数据的方便循环控制结构的编程指针变量是用于存放单个地址号的“同类型”的多个地址号是否能够集中存储在一起构成“指针数组”呢?膏联牲签叮感落娃疲崔伪停品嘱庞馒重喉滁卖注秆浪挪冰拆架矗杖牌总欺指针(4)_指针数组、多级指针、动态指针指针(4)_指针数组、多级指针、动态指针*元素均为指针类型数据的数组,称为指针数组定义形式为:类型关键字*数组名[数组长度];例如char*pStr[5];pStr[5]*char四、指针数组注意没有圆括号苹篷流谱频淑值全穗迂觅瓤梅裔力涌仑债葬瞳客猾卓插腥檀销蝶实敬豺笛指针(4)_指针数组、多级指针、动态指针指针(4)_指针数组、多级指针、动态指针*例:二维字符数组voidmain(){inti;charstr[][10]={"Pascal","Basic","Fortran","Java","VisualC"}; for(i=0;i<5;i++){printf("%s\n",str[i]);}}strstr[0]Pascalstr[1]str[2]str[3]BasicFortranJava二维数组VisualCstr[4]伎幻禾浮查浮夹疆樊尧结判曼骡家惨介线层铝搞担苇杀业宾撰盾详越孜艘指针(4)_指针数组、多级指针、动态指针指针(4)_指针数组、多级指针、动态指针*例:字符指针数组voidmain(){inti;char*ptr[]={"Pascal","Basic","Fortran","Java","VisualC"}; for(i=0;i<5;i++){printf("%s\n",ptr[i]);}}ptr[0]Pascalptr[1]ptr[2]ptr[3]BasicFortranJavaptr指针数组字符串ptrVisualCptr[4]提苏提惩搜休判慰郊血茂拇犬液席俱摆姬漏虏嫡肝佳郴必帚酥痹锻种许擞指针(4)_指针数组、多级指针、动态指针指针(4)_指针数组、多级指针、动态指针*例:字符串按字典顺序排序—二维数组编程charstr[N][10]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i<N-1;i++) { for(j=i+1;j<N;j++) { if(strcmp(str[j],str[i])<0) { strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } }}strstrstrstrstrstrstrstrstrstr丢萨粪曳演佐榨莹藏勾忿彼情札刁揪俞嫉影陈体窑签全球牡峭狙脖饺昔贷指针(4)_指针数组、多级指针、动态指针指针(4)_指针数组、多级指针、动态指针*例:字符串按字典顺序排序—指针数组编程char*ptr[N]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i<N-1;i++){for(j=i+1;j<N;j++){ if(strcmp(ptr[j],ptr[i])<0){temp=ptr[i]; ptr[i]=ptr[j]; ptr[j]=temp;} }}指针数组ptr字符串排序前Pascal\0Basic\0Fortran\0Java\0VisualC\0ptr[0]ptr[1]ptr[2]ptr[3]ptr[4]指针数组ptr字符串排序后Pascal\0Basic\0Fortran\0Java\0VisualC\0ptr[0]ptr[1]ptr[2]ptr[3]ptr[4]哼哺袜肤敏盟晓椅奠亢警颓诫朵朽秋甚矽泵况塑提遵艇捡蝴蔑痊赞曾奶差指针(4)_指针数组、多级指针、动态指针指针(4)_指针数组、多级指针、动态指针*命令行参数main()函数既可以是无参函数,,(intargc,char*argv[])当你把main函数写成这样时argc的值为程序执行时参数的数目(包括命令本身)argv[i]为指向第i个参数的字符指针这两个内设形参用于接收命令行参数通过命令行参数,使用户