我一直以爲我是一個聰明的人,直到我開始學習編程。這是東西一個小例子,不會編譯C中的指針樂趣爲什麼不能編譯?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* dictionary;
dictionary = malloc(sizeof(char) * 3);
*dictionary = "ab";
char c = dictionary[0];
int i = 0;
while (c != "b")
{
printf("%c\n", c);
i++;
c = dictionary[i];
}
}
error.c:8:15:錯誤:不相容指針整數的轉換從「字符[3]」 *字典分配給 「字符」 = 「AB」;
error.c:11:12:錯誤:對一個字符串比較的結果是 未指定(使用STRNCMP代替),而(C = 「B」!)
error.c:11:12:錯誤:指針和整數之間的比較 ('int'和'char *')while(c!=「b」)
什麼編譯錯誤你好嗎?我唯一能注意到的是你沒有爲你的'main'函數返回 – 2014-11-22 01:56:21
如果你聲明main返回'int',請在最後返回一個int ... – jpw 2014-11-22 01:57:02
除了其他的東西,在' while'條件,因爲你正在比較一個'char'值,使用單引號,如:while(c!='b')'。雙引號創建一個字符串字面值,其值是一個指針,而不是您想要比較的值。 – 2014-11-22 01:59:16