-
const在*之后為錯位寫法
查看全部 -
1.有默認參數值的參數必須在參數表的最右端
2.申明時可以加默認值,定義時不加默認值
3.無實參則用默認值,否則用實參
函數重載:
在相同作用域內a.同一函數名定義的多個函數;b.參數個數或者參數類型不同
內聯函數:inline
????1.編譯時將函數體代碼和實參代替函數調用語句
? ? 2.內聯編譯是建議性的,由編譯器決定
????3.邏輯簡單,調用頻繁的函數建議用內聯
????4.遞歸函數無法使用內聯
查看全部 -
int *p=new int[10];
if(p==NULL)
{
//申請失敗
}
delete []p;
p=NULL;
查看全部 -
int a =3 ;
const int *q =&a;
這里的話*q是為const,不能動
const int a = 3;
int *q=&a; //這樣定義是錯的,因為a是常量了,你這里*q還都是變量,q也是變量,完全不對。
查看全部 -
int x = 3;
const int *y = &x;
這里y就是x的地址,*y就等于3
查看全部 -
int x =3;
const int &y = x;
這里const修飾的是y,也就是x的別名,y不能賦值,但是x可以賦值。
查看全部 -
const int *p 這里的const修飾的是*p,所以*p不能變了
int *const p 這里的const修飾的的p,所以p不能變了
const int *const p 那么這里*p和p都不能變。
查看全部 -
指針引用別名
int a =10;
int *p = &a;
int *&q = p; // q為p的別名
那么*q=*p=a
查看全部 -
內存的申請內存 new
內存的釋放內存 delete
方法:
申請內存 int *p = new int;
釋放內存 delete p;
申請內存需要判斷是否成功,釋放內存需要設空指針,不設置為空,會使得同一塊內存重復回收。
new 和 delete 配套使用
查看全部 -
1.函數參數默認值????(實參覆蓋默認值)
void fun(int i,int j=5,int k=10);????
有默認參數值的參數必須在參數表的最右端。
聲明時可帶默認值,定義時不用。
無實參則用默認值,否則實參覆蓋默認值。
2.函數重載 (名稱相同且參數可辨)
在相同作用域內,用同一函數名定義的多個函數,參數個數和參數類型不同的稱為函數重載。
?
3.內聯函數、關鍵字:inline、(效率高、有條件:邏輯簡單,不能是遞歸函數)
編譯時將函數體代碼和實參代替函數調用語句。
遞歸函數無法使用內聯方式。
查看全部 -
int *&q = p;????????//&引用符號
查看全部 -
指針別名的使用?
int a = 3;
int *p = &a;????//指針P指向a的地址;
int *&q = p;????//指針p的別名 q
函數參數使用引用的情況
???????void fun(int &a,int &b)????//交換AB的值
{
????int c = 0;
????a = b;
????b = c;
}
查看全部 -
參數默認值一定在最右端。
查看全部 -
指針指向const修飾的變量時,應該是const int const *p = &a;
查看全部 -
const int x = 3;
x的存儲地址是&x,x的值是3不可改變。
int x = 3;????const int *p = &x;
x的存儲地址是&x,x的值是3可以改變。
p的存儲地址是&p,p的值是&x可以改變。
*p指代x的值,*p是不能更改值的,可以通過x=4更改值,不可通過*p=4更改值。
int x = 3;????int *const p = &x;
x的存儲地址是&x,x的值是3可以改變。
p的存儲地址是&p,p的值是&x不可改變。
*p指代x的值,*p=4可以更改值,x的值也將更改為4。
int x = 3;????const int *const p = &x;
x的存儲地址是&x,不給x定義const的情況下,x的值3仍然是可以改變的。
p的存儲地址是&p,p的值是&x不可改變。
*p指代x的值,*p是不能更改值的。
int x = 3;????const int &y = x;
x的存儲地址是&x,x的值是3可以改變。
y的存儲地址是&x,y的值是3不可改變。
查看全部
舉報