我是C的新手,我很难理解如何使用指针调用方法。目前这段代码应该反转以null结尾的字符串,但是我得到了错误
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;
}
}
}
header.h:
#define EXTERN extern
EXTERN void reverse(char *N)
感谢您的帮助和时间!
答案 0 :(得分:1)
首先,在这段代码中存在许多语法错误:
'sas'那是什么?你的编译器认为它是一个变量,但找不到任何具有该名称的变量。如果你想放一个“sas”字符串,那么:
char* N = "sas";
不一致的括号。更多关闭括号而不是打开括号,并且在声明功能后没有开括号。
答案 1 :(得分:1)
int main(int argc, char *argv[])
{
char* N = "sas";
reverse(*N);
}
首先让N
指向一个字符串常量。然后你试图反转N
指向的内容。但由于N
指向一个字符串常量,因此您试图反转一个字符串常量。根据定义,常量不能改变它们的值。
答案 2 :(得分:-3)
据我所知,你正试图扭转一个字符串。这只是对代码的一点修改。
完整来源:
@Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(myObj) as String)