2011-09-12 24 views
0

更新:C,結構,簡單示例抗議語法更新

我發現了錯誤,單引號錯誤。用雙引號替換它,並且工作正常。對不便,但很快就會發現。

============================================== =============================

這是一個簡單的例子,它應該是結構聲明和對其數據的訪問,但是我得到一個錯誤列表,抱怨「字符常量對於它的類型來說太長」,並且「在printf中傳遞參數1使得指針不能從整數轉換爲整數」。所以,程序崩潰溢出的東西。 Nombre是名字,apellido是姓氏,edad是年齡。試圖收集結構中的所有內容,並打印通過指針訪問它們的結果。 (爲什麼我簡單地由點號通過一個指針,而不是對其進行訪問?)

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

struct estructura_amigo { 
char nombre[30]; 
char apellido[40]; 
char telefono[10]; 
int edad; 
}; 
struct estructura_amigo amigo = { 
'Juanjo', 
'Lopez', 
'592-0483', 
30 
}; 
struct estructura_amigo *p_amigo; 
int main() 
{ 
p_amigo = &amigo; 
printf('%s tiene ', p_amigo->apellido); 
printf('%i años ', p_amigo->edad); 
printf('y su teléfono es el %s.\n' , p_amigo->telefono); 
} 

回答

3

使用雙引號,像這樣

printf("%s tiene ", p_amigo->apellido); 

在C單引號=字符,雙引號=串。

而且

printf("%s tiene " , amigo.apellido); 

應該工作,沒有必要讓一個指針結構。