18135437048 发表于 2022-4-16 11:01:02

c/c++

本帖最后由 18135437048 于 2022-4-16 12:58 编辑

#include<stdio.h>
int sum(char* arr){
        int sum=0;
        printf("%d\n",*arr);
        printf("%d\n",arr);
        for(int i=0;arr!='\0';i++){//============问题    arr!='\0'   c字符串的结束标志不是\0
                sum+=*arr;
                ++arr;
        }
        return sum;
}
int main(){
        char arr={'31','32','33'};
        int len=sizeof(arr)/sizeof(char);
        int result=sum(arr);
        printf("%d",result);
        getchar();
}
这样为什么不行
数组length的传递
c语言的痛:传数组必须传len,我想用str   \0试试

风车呼呼呼 发表于 2022-4-16 11:10:30

++arr;
等同于
arr = arr + 1
(赋值左边不允许是常量)

zzxhh628 发表于 2022-4-16 11:19:43

#include<stdio.h>

int sum(int* arr,int length)
{
    int sum=0;
    printf("%d\n",*arr);
    printf("%d\n",arr);
    for(int i=0; i<length; i++)
    {
      sum+=arr;
    }
    return sum;
}

int main()
{
    int arr= {31,32,33};
    int len=sizeof(arr)/sizeof(char);
    int result=sum(arr,3);
    printf("%d",result);
    getchar();
}
不知道你想实现什么功能,这个是实现数组累加的代码,不知道你是不是要实现这个功能。

傻眼貓咪 发表于 2022-4-16 11:22:06

请问 char arr = {'31','32','33'}; 是什么意思?

andy大宝 发表于 2022-4-16 11:24:11

自增不是arr++吗?
不太理解{:10_330:}

18135437048 发表于 2022-4-16 12:35:15

实现符串数组length传递,字符串累加

18135437048 发表于 2022-4-16 12:36:43

zzxhh628 发表于 2022-4-16 11:19
#include

int sum(int* arr,int length)


字符串数组不是以\0结束,我不想多传len,so...

18135437048 发表于 2022-4-16 12:39:09

傻眼貓咪 发表于 2022-4-16 11:22
请问 char arr = {'31','32','33'}; 是什么意思?

字符自动转int,可以累加

zzxhh628 发表于 2022-4-16 13:09:13

#include <stdio.h>

int sum(char* arr)
{
    int sum=0;
    printf("%d,%d,%d\n",arr,arr,arr);
    for(int i=0; arr!='\0'; i++)
    {
      sum+=arr;
    }
    return sum;
}

int main()
{
    char arr= {'31','32','33','\0'};
    int len=sizeof(arr)/sizeof(char);
    int result=sum(arr);
    printf("%d\n",result);
    getchar();
}

18135437048 发表于 2022-4-16 13:19:58

#include<stdio.h>
int sum(char arr[]){
        char* p=arr;
        int i;
        for(i=0;*p++!='\0';i++){
                printf("%c\n",*p);
        }
        return 0;
}
int main(){
        char arr="Hello";
        int len=sizeof(arr)/sizeof(char);
        int result=sum(arr);
        printf("%d",result);
        getchar();
}
ok
页: [1]
查看完整版本: c/c++