1094570635 发表于 2022-11-29 15:19:54

char型指针问题

#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0

#define MAXSIZE 40

typedef int Status;               
typedef int ElemType;

typedef char String;


Status StrAssign(String T, char* chars)
{
        int i;
        if (strlen(chars) > MAXSIZE)
                return ERROR;
        else
        {
                T = strlen(chars);
                for (i = 1; i <= T; i++)
                        T = *(chars + i - 1);
                return OK;
        }
}




int main()
{
        int i, j;
        Status k;
        char s;
        String t, s1, s2;
        cout << "请输入串s1:";
        k = StrAssign(s1, "abcd");




        return 0;
}

出现了
E0167        "const char *" 类型的实参与 "char *" 类型的形参不兼容       

人造人 发表于 2022-11-29 15:23:27

字符串的类型不是char *,是const char *
Status StrAssign(String T, char* chars)
Status StrAssign(String T, const char* chars)

1094570635 发表于 2022-11-29 15:31:22

人造人 发表于 2022-11-29 15:23
字符串的类型不是char *,是const char *
Status StrAssign(String T, char* chars)
Status StrAssign( ...

和C的定义有很大不同,这样定义形参是固定的么{:10_243:}

人造人 发表于 2022-11-29 15:35:08

1094570635 发表于 2022-11-29 15:31
和C的定义有很大不同,这样定义形参是固定的么

C++中的字符串常量的类型不是char *,是const char *
类型不一样就报错了

1094570635 发表于 2022-11-29 15:36:54

人造人 发表于 2022-11-29 15:35
C++中的字符串常量的类型不是char *,是const char *
类型不一样就报错了

明白了
页: [1]
查看完整版本: char型指针问题