1樓:匿名使用者
就是將p指向的字串複製到陣列第2個元素開始位置之後,輸出應該是aabc
2樓:匿名使用者
*p="abc",str+1=str[1]='b',str[0]='a';
strcpy(str+1,p) 將"abc"複製的從str[1]開始的位置,
所以printf,str ="aabc".
c語言中,color[n] = (char *)malloc(sizeof(char)*(strlen(str)+1))是什麼意思
3樓:匿名使用者
void main()
for(i = 0; i < n; i++)printf("%s ", color[i]);//打出color[n]陣列共n個
printf("\n");
return 0;
} 這個程式實現的功能是輸入n<20個字串,每個字串長度小於10如果輸入"#"則表示輸入結束,最後打出輸入的字串。
4樓:匿名使用者
malloc函式用於向操作抄系統申請記憶體,bai宣告在stdlib.h中,原型du如下:
void *malloc(unsigned int num_bytes);
malloc申請num_bytes指定zhi大小的記憶體,成功則返回
dao指向這塊記憶體的指標,失敗則返回null。
這條語句含義就是申請記憶體,並將指標轉換為char *型別賦值給color[n],申請的大小為sizeof(char) * (strlen(str) + 1)。
sizeof(char)就是一個char型別佔用的空間大小,strlen(str)為字串str的長度,因為字串最後還有個'\0'表示字串結尾,所以這一塊就表示str字串佔用的記憶體空間的總大小。
5樓:匿名使用者
color[n] = (char *)malloc(sizeof(char)*(strlen(str)+1))
從左復到右講起, 首先制等號左邊是 一個
bai char* 的陣列的一個元素du,也就是zhi一個char* : color[n]; 右邊 是用 malloc分配堆空dao間記憶體, malloc的返回值型別是void*,需要用(char*)來強轉型別以和等號左邊匹配;malloc的 引數是 需要分配的位元組數,也就是 (sizeof(char)*(strlen(str)+1)),sizeof(char)是1,所以實際上就是 strlen(str)+1, strlen返回的是字串的長度(不包括最後一個'\0', 比如 strlen("hello")就是5), 為了儲存這個字串,就要分配長度+1(用來儲存『\0』)的空間。
說到這裡,這個程式的目的也就清楚了, 使用者輸入 顏色的名字,最後一個顏色用#號結束,然後將之列印出來。(我自己用vs2008執行了一遍,結果也如此)
德國VS西班牙比分結果是多少
德國更強些,西班牙王朝沒落了 如果相遇猜測德國2 1取勝 1 世界冠軍之戰 兩隊是最近兩屆世界盃冠軍得主,2010年西班牙在南非首捧大力神杯,2014年德國在巴西加冕四冠王,此番將是兩支世界冠軍隊的對話。近6年西班牙一直扮演著德軍剋星,2008年歐洲盃與2010年世界盃加冕路上都曾擊敗過最大勁敵德國...
雙色球第19期開獎結果是多少
雙色球第2021019期 2021 02 25 開獎結果是 12 29 17 24 16 28 08 藍球 中獎情況 一等獎 中獎注數6,單注中獎金額6344519元 二等獎 中獎注數104,單注中獎金額96960元 三等獎 中獎注數2630,單注中獎金額3000元 四等獎 中獎注數111444,單...
下面的程式結果是多少phpa1aa
輸出結果為 1 作為對比,你可以參看以下 a 1 a a echo a 輸出結果 2 a 1 a echo a 這樣就是2 以下 的輸出結果是 輸出結果是2014,2013 b a,指的是指向同一個內容,就是說在這兒 b和 a是相同的 php程式如下 a 1 b a b a echo a,b 請問為...