可能重复:
character pointers字符指针
难道不是'a'
被解码为它的ASCII码值和下面的语句变成相当于char *pch= 197
。现在pch
将指向字符的地址位置197
char *pch='a'; //if not then what does this statement mean
可能重复:
character pointers字符指针
难道不是'a'
被解码为它的ASCII码值和下面的语句变成相当于char *pch= 197
。现在pch
将指向字符的地址位置197
char *pch='a'; //if not then what does this statement mean
此语句将无法编译char *pch='a';
。您正试图将ascii字符'a'指定给char!
您是不是要找char *pch="a";
为什么你要访问的位置197. 在大多数PC到0页面的任何访问提高内存冲突。
+1'char * pch =“a”;'有意义 – 2011-03-08 11:43:49
@sarnold:它在C中编译,但问题标记为C++,而在C++中这是一个错误。 – 2011-03-08 11:48:13
@sarnold:不,它*不*:http://ideone.com/etzze – rubenvb 2011-03-08 11:48:22
这行不应该编译,至少在C++中。
在这一行中,您创建了一个指向名称为'pch'的字符(char *)的指针。然后,您尝试将其初始化为字符'a' - 这是不可能的,因为指针只能用某个对象的地址或空指针(0)初始化。
我认为在C中它也是非法的,但我不确定它。
如果你想设置的PCH变量指向的位置地址197下,你可以尝试以下之一:
char *pch = (char *) 197;
char *pch = reinterpret_cast<char*>(197); // C++ only
它初始化一个指针,但它不会让你走得很远,因为地址197处的内存不太可能成为程序的一部分。不要在家里试试这个孩子! – 2011-03-08 17:31:30
基本上,
你存储一个char在C中无效的指针中。
指针应该保存其类型的地址。 但不是它的类型的值。
什么是197?内存地址?这个地址是否属于该程序? – Nawaz 2011-03-08 11:41:39
我怀疑是否将它作为确切的重复或不是真正的问题关闭它。如果在'重复'中有某些你不明白的地方,请提供一个合理的问题。这就像是一个声明。 – 2011-03-08 12:26:31