指標陣列和二重指標的等價使用
阿新 • • 發佈:2019-01-07
一 定義且初始化 #include "stdio.h" int main() { char *p[] = {"aaa","bbb"}; char **pp = p; printf("%s",p[0]); //輸出結果是:aaa printf("%s",pp[0]);//輸出結果是:aaa p[0] = "ccc"; //指標指向新的記憶體區域 *p[0] = 'v'; //錯誤:字元常量區域不能被修改 return 0; } 二 使用迴圈初始化 void CTESTDlg::OnButton1() { // TODO: Add your control notification handler code here char*p[9] = NULL;//錯誤,這是陣列,不能這樣初始化 char*p[9]={NULL}; for(int i = 0;i<9;i++) { p[i] = (char*)malloc(20); if(!p[i]) { MessageBox("error"); } sprintf(p[i],"%d",i); MessageBox(CString(p[i])); } } return 0; } 指標 指向的是一個指標,就是二重指標。或者用指標陣列,不過指標陣列有陣列大小的限制。