|
| » 首页 » 电脑_数码 » 编程 » 关于 C 语言的字符指针数组 |
关于 C 语言的字符指针数组 |
|
定义一个字符指针数组,类似如下的源代码:
char *p[2]; p[0]="123456"; p[1]="7890ab"; 这居然是合法的,感觉用这种方式比用字符串数组好得多,但是,教材上涉及到字符串处理的程序,都没有这么用,为什么呢??这方法有什么缺点吗?? |
![]() |
|
|
这居然是合法的?
这本来就是合法的。而且通常都是这么写的,没有什么缺点。 这是指针的数组,不是字符的数组。 p[0] = "123456" 是说把字符串 "123456" 在内存中的首地址赋给指针 p[0] 这段程序就相当于: char p[2][]; p[0] = "123456"; p[1] = "7890ab"; 这是因为int型和char型进行了互转,你这样定义其实参数是一个数值,而不是字符,如果是字符中间应用逗号进行间隔,否则你试一下就会出错。 为什么叫居然呢,确实,本来就合法呀 书上什么都有,再仔细看看 |
| 《关于 C 语言的字符指针数组》答案收集时间:2006-08-24 20:21:56 |