首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问一个C的有关问题

2012-04-14 
请教一个C的问题C/C++ code#includestdio.h#includestdlib.h#includestring.hsize_t str_len(char *

请教一个C的问题

C/C++ code
#include<stdio.h>#include<stdlib.h>#include<string.h>size_t str_len(char *string){    int length = 0;    while(*string++ != '\0')    {        length +=1;    }    return length;}int main(){    char ch = 'a';    char *cp = &ch;    printf("str_len(cp)=%d",str_len(cp));    printf("sizeof(cp)=%d",sizeof(cp));    printf("strlen(cp)=%d\n",strlen(cp));    *(cp+1)='c';    printf("%c\n",*cp);    printf("%c\n",ch);    printf("%c\n",*(&ch+1));    printf("%c\n",*cp+1);    //printf("*++cp=%c\n",*++cp);    printf("*cp++=%c\n",*cp++);    printf("%c\n",*cp);    char **c=&cp;    printf("%c\n",**c);    printf("str_len(cp)=%d",str_len(cp));    printf("sizeof(cp)=%d",sizeof(cp));    printf("strlen(cp)=%d",strlen(cp));    return 0;}

结果是:
str_len(cp)=1sizeof(cp)=4strlen(cp)=1
a
a
c
b
*cp++=a
c
c
str_len(cp)=11sizeof(cp)=4strlen(cp)=11
为什么呢




[解决办法]

char ch = 'a';
char *cp = &ch;

木有明确的结束符\0,崩了也不奇怪。

热点排行