#include "stdlib.h"
#include "string.h"
#include "stdio.h"
//int a[10] -=-->int a ---->int *a
//陣列做函式形參的時候,如果在形參中定義int a[10]語句,
//c/c++編譯器 會做優化,技術推演如下
//int a[10] -=-->int a ---->int *a
//總結:函式呼叫的時候,把陣列首位址和有效資料長度傳給被呼叫函式才是最正確的做法
//在函式呼叫哪個的時候 實參的值機械的傳給形參(c int陣列場景)
//關於形參:
/*寫在函式上形參變數,還是寫在函式裡面的變數,
從cc++編譯的角度來講,是沒有任何區別的(分配4位元組記憶體);
只不過是 寫在函式上形參變數 ,具有對外的屬性而已
*///當陣列當做函式引數的話的時候會退化為指標
int printfarray01(int a[10], int num)
return 0;
}int printfarray02(int a, int num)
return 0;
}int printfarray03(int *a, int num)
return 0;
}int sortarray(int a)}}
return 0;
}void main()
;int tmp;
num2 = sizeof(a)/sizeof(*a);
printf("num2:%d \n", num2);
printf("排序之前\n ");
printfarray02(a);
sortarray(a);
printf("排序之後\n ");
printfarray(a);
printf("hello.....\n");
system("pause");*/}
C語言 陣列做函式引數退化為指標的技術推演
陣列做函式引數退化為指標的技術推演 include include include 一維陣列做函式引數退化為指標的技術推演 void printfa char strarr 3 計算機中,陣列都是線性儲存,二維陣列元素也是乙個個的排列的 例如 1,2,3,4,5,6,7,8,9 像這組資料 我們可以...
copy 函式技術推演
str copy.c include void copy str21 char from,char to to 0 return intmain 程式記憶體四區分析 char from abcd 作業系統在在常量區分配乙個記憶體存放 abcd 在棧區定義分配一塊記憶體,取名位from,from指向的...
陣列做函式引數
陣列名是陣列元素首位址,可以直接當做實參,可以用指標或方式來當形參接收,都是位址傳遞,形參都是指標方式 include void input int arr void output int arr 這裡得出的大小是4個位元組,證明形參是指標形式 printf n d sizeof arr void ...