- 论坛徽章:
- 0
|
本帖最后由 woods2001 于 2010-04-28 09:42 编辑
- char * const * next()
- {
- char * const *c_ptr;
- char *buffer;
- buffer = (char *)malloc(sizeof(char) * 20);
- strcpy(buffer, "hello, world!");
- c_ptr = &buffer;
- printf("In function next.\n");
- return c_ptr;
- }
- int main(void)
- {
- char * const *ptr;
- char c;
- ptr = next();
- //printf("%x\n", ptr);
- printf("%s\n", *ptr);
- printf("%p\n", *ptr);
- printf("%s\n", *ptr);
- printf("%p\n", *ptr);
- printf("26\n");
- //(*ptr)[3] = 'r';
- printf("28\n");
- //c = (*ptr)[3];
- printf("30\n");
- // printf("%c\n", c);
- printf("%s\n", *ptr);
- }
复制代码 结果:
In function next.
hello, world!
0x8048560
****乱码****
0x8048560
26
28
30
****乱码****
乱码了阿,*ptr是同一个地址阿,在没经过任何修改之下,输出怎么乱码了
我编制这个程序是想知道 char * const * 究竟是什么意义:1.一个常量指针,指向指针且该指针指向char类型
2.一个指针,指向常量指针且该指针指向char类型 |
|