C和指針小結(推舉)。本站提示廣大學習愛好者:(C和指針小結(推舉))文章只能為提供參考,不一定能成為您想要的結果。以下是C和指針小結(推舉)正文
C和指針
相干基本常識:內存的分派(譚浩強版)
1、整型變量的地址與浮點型/字符型變量的地址差別?(整型變量/浮點型變量的差別是甚麼)
2、int *p,指向整型數據的指針變量。
3、經由過程指針變量拜訪整型變量。
4、*p :指針變量p指向的存儲單位(變量)
5、p = &a——>> *p = *&a
6、用指針作函數參數
7、挪用函數中,因為真假聯合是采取單向的“值傳遞”方法,只能從實參向形參傳數據,形參值的轉變沒法回傳給實參。
8、援用一個數組元素可以用(1)下標法(2)指針法(占內存小,運轉速度快)
9、指針進步效力在那些方面?(內存,運轉時光??)
10、假如指針變量p已指向數組中的一個元素,則p+1指向統一數組中的下一個元素。
11、用指針變量作函數形參接收數組地址。數組指針和指針數組的差別
#include"iostream" using namespace std; int main() { void sort(int *p,int n); int a[5],i; cout<<"input array:"<<endl; for(i=0;i<5;i++) cin>>a[i]; cout<<endl; sort(a,5); cout<<" the sorted array:"<<endl; for(i=0;i<5;i++) cout<<a[i]<<" "; cout<<endl; return 0; } void sort(int *p,int n) { int i,j,k,temp; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(*(p+j)<*(p+k)) k=j; temp=*(p+k); *(p+k)=*(p+i); *(p+i)=temp; } }
12、一個int占若干個字節?
13、實參和形參的聯合有一下4種情勢:
實參 形參 數組名 數組名 數組名 指針變量 指針變量 數組名 指針變量 指針變量
14、實參數組名a代表一個固定的地址,或許說是指針常量,是以其值弗成轉變;形參數組名是指針變量,可以轉變。// a++ //語法毛病,弗成轉變
15、字符串與指針。字符串數組/字符串變量/字符指針 寄存字符串。
//test_3 指針寄存字符串 #include<iostream> using namespace std; // #include<string> //字符串變量 int main() { char str1[]="I Love C++",str2[20],*p1,*p2; p1=str1; p2=str2; for(;*p1!='\0';p1++,p2++) *p2=*p1; *p2='\0'; p1=str1; p2=str2; cout<<"str1 is "<<p1<<endl; cout<<"str2 is "<<p2<<endl; return 0; }
16、函數與指針。函數的進口地址就稱為函數的指針。
1)、用函數指針挪用函數
函數類型 (*變量名)(函數形參表)
#include<iostream> using namespace std; int main() { int max(int x, int y); int (*p)(int,int); int a,b,m; p=max; cin>>a>>b; m=p(a,b); cout<<"max is "<< m<<endl; return 0; } int max(int x,int y) { int z; if (x<y) z=y; else z=x; return(z); }
2)、用指向函數的指針作函數參數。
3)、前往指針值的函數:指針函數。
類型名 *函數名(參數列表);int *a( int x,int y);
17、
1)、指向常量的指針(不許可經由過程指針變量修正它指向的對象的值)
const 類型名 *指針變量名
2)、常指針(指定指針變量的值為常量,即指針變量的指向弗成轉變)
類型名 *const 指針變量名
Tips:必需在界說是初始化,指定其指向。
指針變量的指向弗成轉變,但指針變量的指向變量的值可以轉變。*p2=12;//正當
留意(const和*的地位)。const在*前面,請與界說指向常變量的指針變量的情勢比擬。
3)、指向常量的常指針(指針變量指向一個固定的對象,該對象的值不克不及轉變)。
const 根本類型名 *const 指針變量名
18)、void指針類型
以上這篇C和指針小結(推舉)就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。