1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main1(void) 5 { 6 7 //str是常量; 8 //char str[100] = "calc"; 9 //char str[100] = { "calc" }; 10 11 //p是变量; 12 //新方法开辟的数组,后面的花括号不可以被省略的; 13 char* p = (char[]) { "calc" }; 14 system(p); 15 16 //str和p都代表的栈上的数组; 17 18 system("pause"); 19 return 0; 20 } 21 22 23 int main(void) 24 { 25 //普通的数组 26 //二维数组,每一个元素是一个一维数组,存储了字符串,字符串是可以修改的; 27 //char str[5][20] = { {"calc"},{"notepad"},{"mspaint"},{"tasklist"},{"pause"} }; 28 char str[5][20] = { "calc","notepad","mspaint","tasklist","pause" }; 29 30 31 //指针数组 32 //指针数组存储的每一个元素都是一个指针,存储了代码区字符串的常量地址,字符串是不可以被修改的; 33 char* p[5] = { "calc","notepad","mspaint","tasklist","pause" }; 34 35 36 for (int i = 0; i < 5; i++) 37 { 38 printf("%s,%s\n", str[i], p[i]); 39 } 40 41 42 //*p[0] = 3; 代码区不能进行赋值; 43 *(str+1)[0] = 'x'; 44 for (int i = 0; i < 5; i++) 45 { 46 printf("%s,%s\n", str[i], p[i]); 47 } 48 system("pause"); 49 return 0; 50 } 51 52 53 //检索的话:1.开辟一个二维数组,或者开辟一个指针数组 54 //增删查改的话:用的二维数组,指向代码区的指针数组是不可以进行更改的,指向堆区的话,是可以的
浙公网安备 33010602011771号