C:我怎样才能投下一个指针(或者我在这件事上做得完全错了)?

C:我怎样才能投下一个指针(或者我在这件事上做得完全错了)?,c,pointers,C,Pointers,首先,我应该说我来自Java背景。也就是说,我刚刚开始学习C语言,我真的很难使用指针。这些概念很简单,但实际使用它们对我来说是一个相当困难和令人沮丧的经历 无论如何,我试图创建一个复制atoi的函数,而不使用stdlib.h库。我认为这是一个简单的铸造问题,但当我测试它时,我得到了一些非常奇怪的结果。我的资料如下: int myatoi(const char* str){ return (int)*str; } 考虑到我真的不知道在指针方面我在做什么,我肯定是做错了什么,但我完全不知道

首先,我应该说我来自Java背景。也就是说,我刚刚开始学习C语言,我真的很难使用指针。这些概念很简单,但实际使用它们对我来说是一个相当困难和令人沮丧的经历

无论如何,我试图创建一个复制
atoi
的函数,而不使用
stdlib.h
库。我认为这是一个简单的铸造问题,但当我测试它时,我得到了一些非常奇怪的结果。我的资料如下:

int myatoi(const char* str){
    return (int)*str;
}

考虑到我真的不知道在指针方面我在做什么,我肯定是做错了什么,但我完全不知道是什么。

这行不通。强制转换将导致将第一个字符(在位置
*str
)作为整数“重新解释”为其ASCII值


您需要通过遍历字符串并对其进行解析来处理字符串。

这不起作用。强制转换将导致将第一个字符(在位置
*str
)作为整数“重新解释”为其ASCII值


您需要通过遍历字符串并对其进行解析来处理字符串。

这不会将字符串转换为整数。这是您的整个函数???您的函数获取字符串中的二进制数据,并表示数值中的第一个字符(即字符
“1”
可能以二进制ASCI值
49
表示。如果您有一个
char*
存储字符串
“1234”
,则将其转换为
int
将不会转换字符串
“1234”
转换为数字
1234
。您需要一次解析字符串一个字符,才能转换为数字/整数。有关如何转换的信息,请参阅。这不会将字符串转换为整数。这是您的整个函数???您的函数获取字符串中的二进制数据,并表示数值中的第一个字符(即,字符
“1”
可能用其二进制ASCI值
49
表示。如果您有一个
char*
存储字符串
“1234”
,则将其转换为
int
将不会转换字符串
“1234”。)
转换为数字
1234
。您需要一次解析一个字符的字符串才能转换为数字/整数。请参阅以了解如何完成此操作。@Myst Correct,fixed@Myst正确的,固定的