陣列做函式推演

2021-08-14 03:03:06 字數 996 閱讀 7881

#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 ...