小编Lea*_*ngC的帖子

快速的问题

我已经开始打扰你了另一个可能非常简单的C问题.

使用以下代码:

int get_len(char *string){

    printf("len: %lu\n", strlen(string));

    return 0;
}

int main(){

    char *x = "test";
    char y[4] = {'t','e','s','t'};

    get_len(x); // len: 4
    get_len(y); // len: 6

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

2个问题.为什么他们不同,为什么是6?多谢你们.

编辑:对不起,我知道会解决什么问题,我只是想了解发生了什么.那么strlen只是继续转发这个点,直到碰巧找到一个\ 0?此外,当我在主函数而不是get_len函数中执行strlen时,两者都是4.这只是巧合吗?

c string strlen

6
推荐指数
1
解决办法
8563
查看次数

如何从函数返回一个整数

哪个被认为是更好的风格?

int set_int (int *source) {
   *source = 5;
   return 0;
}

int main(){
   int x;
   set_int (&x);
}
Run Code Online (Sandbox Code Playgroud)

要么

int *set_int (void) {
    int *temp = NULL;
    temp = malloc(sizeof (int));
    *temp = 5;
    return temp;
}

int main (void) {
    int *x = set_int ();
}
Run Code Online (Sandbox Code Playgroud)

为了获得更高级别的编程背景,我得说我更喜欢第二个版本.任何提示都会非常有帮助.还在学习C.

c

1
推荐指数
1
解决办法
546
查看次数

标签 统计

c ×2

string ×1

strlen ×1