如果在參數表中,int
創(chuàng)新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于做網站、網站建設、東興網絡推廣、小程序制作、東興網絡營銷、東興企業(yè)策劃、東興品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯為所有大學生創(chuàng)業(yè)者提供東興建站搭建服務,24小時服務熱線:18980820575,官方網址:www.cdcxhl.com
[],實際會被轉換成int
*。不信你可以試試這個程序:
#include
stdio.h
void
f(int
b[10]){
printf("%d\n",sizeof(b));
}
void
main(){
int
a[10];
printf("%d\n",sizeof(a));
f(a);
}
至于為什么,就是為了防止傳遞數組,C認為有一個原始的,就操作它好了,如果你覺得要另立副本,就自己新分配內存,或者用自己auto分配的內存,將內容復制過來。當然C++的今天,你可以用引用或者對象復制,來強行真正去傳整個數組。
不能說簡單類型傳值,數組只傳首地址指針就不好,現在很多語言還都傳引用,但是真正需要副本時,要想辦法,否則可能出現功能問題。
while((*str=*str1)!=NULL);//無限的把str1的頭地址元素'a'賦予str的頭地址,是一個死循環(huán)
//下面的執(zhí)行不了,不過也是錯的
while((*str1=*str2)!=NULL);
while((*str2=*str)!=NULL);
第一選擇題是;在swp()函數中 t沒有定義!就使用了!所以上面所得都不對!
第二個選擇題是:如果有錯應該是函數定義的錯吧
strcpy(p1,p2);(交換兩字符串的位置)(2樓那位寫反了);
swp(str1,str2);(如果滿足if語句,調用swp()函數,交換str1和str2的位置);
swp(str1,str3);(如果滿足if語句,調用swp()函數,交換str1和str3的位置);
swp(str2,str3);(如果滿足if語句,調用swp()函數,交換str2和str3的位置);