gpt4 book ai didi

C 指针和调用方法?

转载 作者:行者123 更新时间:2023-11-30 21:31:40 24 4
gpt4 key购买 nike

我是 C 新手,我很难理解如何使用指针调用方法。目前此代码应该反转以空结尾的字符串,但我收到错误

main.c:8:12: error: use of undeclared identifier 'sas'
char* N = sas;
^ main.c:10:10: warning: incompatible integer to pointer conversion passing 'char' to parameter of type
'char *'; remove * [-Wint-conversion]
reverse(*N);
^~ ./header.h:3:27: note: passing argument to parameter 'N' here EXTERN void reverse(char *N);

我的实际代码是这样的:主要的:

#include <stdio.h> 
#include <stdlib.h>
#include "header.h"

int main(int argc, char *argv[])
{
char* N = sas;
reverse(*N);
}

反向:

#include <stdio.h>
#include "header.h
#include <stdlib.h>

void reverse(char *str)
{
char* end = str;
char temp;
printf("this is *str: %c\n", *str);
if (str)
{
while (*end)
{
++end:
}
end--;
while (str < end)
{
temp = *str
*str++ = *end;
*end-- = temp;
}
}
}

标题.h:

#define EXTERN extern
EXTERN void reverse(char *N)

感谢您的帮助和时间!

最佳答案

int main(int argc, char *argv[]) 
{
char* N = "sas";
reverse(*N);
}

首先让 N 指向一个字符串常量。然后你尝试反转 N 指向的内容。但由于 N 指向字符串常量,因此您尝试反转字符串常量。根据定义,常量的值不能改变。

关于C 指针和调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30675828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com