c语言 char* 参数,深入理解c语言中两级指针(char **pptr)的参数的用法
/**/##*msgg[]={"","","","","","","Saturday"};voidget_w_day(constchar**pp){pp[0]=msgg[2];//*pp=msgg[0];pp[1]=msgg[3];//*(pp+1)=msgg[1];}intmain(void){charptr[2]={};constchar*pptr=ptr;//這里初始化也可以為NULL,不會導(dǎo)致編譯出錯和運(yùn)行時(shí)的段錯誤,但在實(shí)際程序中最好詳細(xì)初始化constchar**ppptr=pptr;//在ppptr參數(shù)傳入get_w_day()函數(shù)之前,必須對其進(jìn)行初始化,否則會導(dǎo)致運(yùn)行時(shí)的段錯誤//仔細(xì)想一下原因,如果ppptr是NULL,那么get_w_day()函數(shù)修改的*ppptr就會修改一個(gè)不確定的位置//進(jìn)一步從底層查找原因,如果ppptr是NULL,那么傳入get_w_day()時(shí)刻的實(shí)際值就是0x0,也就是我們要操作*((char*)0x00)=??//這樣必然導(dǎo)致一個(gè)段錯誤get_w_day(ppptr);charfuck=**ppptr+1;//這里的fuck應(yīng)該等于幾?答案是'U'=='T'+1charfuckk=*(*ppptr+1);//如果是fuck=*(*ppptr+1)呢?答案是'u'==指向"Tuesday"頭指針加1charfuckkk=**(ppptr+1);//如果是**(ppptr+1)呢?答案是'V'charfuckkkk=**((ppptr+1)+1//是'W'=='V'+1charfuckkkkk=**((ppptr+2)+1//是一個(gè)不確定的值,有可能引起段錯誤printf("%s\t%s
",*ppptr,*(ppptr+1));return0;}
總結(jié)
以上是生活随笔為你收集整理的c语言 char* 参数,深入理解c语言中两级指针(char **pptr)的参数的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 先用总分升序再用计算机降序,怎样用升序降
- 下一篇: java模拟excel排序_Apache