![](/img/trans.png)
[英]Why can I pass an int with a value higher than 127 into a char array, but not directly?
[英]Why an int* array can't be initialized directly but char* array can be?
為什么不能直接初始化int*
數組而可以初始化char*
數組? 我知道它們並不相同,但是導致這種情況發生的確切區別是什么(請解釋原因)?
我知道為什么int* p[]
無法直接初始化。
我不知道char* name[]
怎么可能?
例如:
char* name[] = { "Mostafa Chamran", "Mehdi Zeinoddin", "Ebrahim Hemmat" };
和
int* p[3] = {1, 2, 3};
輸入錯誤: 轉換無效
我不知道要搜索什么才能找到相關的問題,所以我不知道是否存在相同的問題
后一個表達式是一個指針數組。 該錯誤表明您正在將int轉換為int *。
表達式應為
int arr[3]={1, 2, 3};
您為p
給出的條目不是int*
條目,它們是int
條目,因此類型不正確( int
不是int*
)。 您為name
條目提供的字符串文字是const char [x]
(其中x
是文字*的長度),可以將其隱式轉換為char*
,因此類型可以接受並且可以使用。
由於您的p
是一個int*
數組,因此條目必須是int*
或隱式可轉換為它,就像char*
name
數組的條目可隱式轉換為char*
。
(* "foo"
是const char[4]
,例如'f'
, 'o'
, 'o'
, '\\0'
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.