C++数组名做函数形参/指针
生活随笔
收集整理的這篇文章主要介紹了
C++数组名做函数形参/指针
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數組名做函數形參
數組未開辟空間時
#include <iostream>
using namespace std;
void test(int* a)
{*a = 0;*(a+1) = 1;*(a+2) = 2;cout<<a[0]<<a[1]<<a[2]<<endl;return;
}
int main(int argc,char* argv[])
{int* a;test(a);cout<<a[0]<<a[1]<<a[2]<<endl;return 0;
}
輸出為空,因為a沒有開辟內存。
開辟內存時
#include <iostream>
using namespace std;
void test(int* a)
{*a = 0;*(a+1) = 1;*(a+2) = 2;return;
}
int main(int argc,char* argv[])
{int* a = new int[10];test(a);cout<<a[0]<<a[1]<<a[2]<<endl;return 0;
}
輸出為012,因為a開辟了內存。
?
?
指針
指針變量所占內存空間
指針自身也是一個變量類型,占8個字節。
#include <iostream>
using namespace std;
int main(int argc,char* argv[])
{cout<<sizeof(int*)<<endl;cout<<sizeof(double*)<<endl;cout<<sizeof(char*)<<endl;
}
指針數組/數組指針
指針數組 int* a[5] 是一個數組,數組內部的變量為指針類型
數組指針 int (*a)[5] 是一個指針,指針指向數組類型變量
#include <iostream>
using namespace std;
int main(int argc,char* argv[])
{// 指針數組int a = 1;int b = 2;int* a_ptr = &a;int* b_ptr = &b;int* type1[2] = {a_ptr,b_ptr};cout<<*type1[0]<<endl;// 數組指針int(*c)[2];int d[2] = {1,2};c = &d;cout<<*(*c+1);
}
總結
以上是生活随笔為你收集整理的C++数组名做函数形参/指针的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个好听的帅哥名字
- 下一篇: 多拉玛尔是谁画的啊?