請看看這個程序麻煩順便結構字面作爲函數參數
#include<stdio.h>
#include<string.h>
typedef struct hs_ims_msrp_authority
{
int host_type;
char buf[50];
int port;
}hs_i;
int main()
{
char dom[50];
int i = 10, j = 20;
strcpy(dom, "ine");
fun((hs_i){i, dom, j}); // doesnt work
fun((hs_i){i, "dom", j}); // this works
}
int fun(hs_i c)
{
printf("%d %s %d\n", c.host_type, c.buf, c.port);
}
在調用主好玩的功能;當字符串文字(「dom」)被傳遞時,函數調用是如何工作的?當數組變量(dom)被傳遞時它不起作用?
爲了使變量的工作應該以特定的方式進行類型化?或者還有其他方法嗎?
@Sibrajas:這樣做'的樂趣((hs_i){我,* DOM,J})'只會第一性格特徵複製DOM,而不是整個字符串。 – rik
@prasunbheri我還沒有給出答案(fun((hs_i){i,* dom,j})作爲答案,我剛纔解釋了爲什麼好玩((hs_i){i,dom,j});不會工作。 –