注册 登录
编程论坛 C++教室

这个是什么意思?

newyj 发布于 2008-03-20 22:23, 1781 次点击
char *table[] = {"000", "001", "010", "011", "100", "101", "110", "111"};
char *table[]是什么意思 是定义了指针数组吗  是否存储了每个 如000的首地址
那要是调用的时候 怎么用
12 回复
#2
sunkaidong2008-03-20 22:38
放的是字符串得地址...
#3
PcrazyC2008-03-20 22:41
是指针数组,table[0],table[1].....table[7]的类型都是char *型,分别指向{}里的八个字符串,至于用法吗,以第一个元素为例,你就把他看成char *p="000";这个P怎么用知道吧,用的时候把它换成table[0]就行了
#4
newyj2008-03-20 22:46
char *p="000";和char p[]="000";有什么区别?
#5
PcrazyC2008-03-20 22:50
前面的只是指向了字符串,由于字符串是常量数组,所以不能改变P的元素,但后面的一个复制了字符串到另一个内存区,是变量,可以改变其元素
#6
newyj2008-03-20 22:52
那const char *p="000";呢
#7
sunkaidong2008-03-20 22:56
你试试就知道了..前一个是字符串常量是不允许通过指针改变的
#8
newyj2008-03-20 22:59
那和char *p="000";一样啊
#9
sunkaidong2008-03-20 23:00
#include"stdio.h"
#include"string.h"
main()
{
    const char *p1="0001";
    char *p="000";
  
    p1[2]='s';
    p[2]='s';    
}
#10
PcrazyC2008-03-20 23:01
const char *p说明这个指针指向常量
char * const p说明这个指针是一个常量,指向一个之后不能改变
#11
sunkaidong2008-03-20 23:01
前一个你改变编译器就告诉你错了..后一是运行异常
#12
newyj2008-03-20 23:04
先谢谢 楼上两位 的耐心回答
我再想想
#13
zl3084242008-03-23 10:51
char *table[]就是数组指针撒.指向每个元素("000", "001", "010", "011", "100", "101", "110", "111")的首地址.
     调用的时候table[0]就是"000"的首地址,table[1]就是"001"的首地址,依次类推.
1