一 定义且初始化 #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; } 指针 指向的是一个指针,就是二重指针。或者用指针数组,不过指针数组有数组大小的限制。
指针数组和二重指针的等价使用
最新推荐文章于 2023-10-16 14:44:17 发布