C和指針小結(jié)(推薦)
C和指針
相關(guān)基礎(chǔ)知識(shí):內(nèi)存的分配(譚浩強(qiáng)版)
1、整型變量的地址與浮點(diǎn)型/字符型變量的地址區(qū)別?(整型變量/浮點(diǎn)型變量的區(qū)別是什么)
2、int *p,指向整型數(shù)據(jù)的指針變量。
3、通過指針變量訪問整型變量。
4、*p :指針變量p指向的存儲(chǔ)單元(變量)
5、p = &a——>> *p = *&a
6、用指針作函數(shù)參數(shù)
7、調(diào)用函數(shù)中,由于虛實(shí)結(jié)合是采用單向的“值傳遞”方式,只能從實(shí)參向形參傳數(shù)據(jù),形參值的改變無法回傳給實(shí)參。
8、引用一個(gè)數(shù)組元素可以用(1)下標(biāo)法(2)指針法(占內(nèi)存小,運(yùn)行速度快)
9、指針提高效率在那些方面?(內(nèi)存,運(yùn)行時(shí)間??)
10、如果指針變量p已指向數(shù)組中的一個(gè)元素,則p+1指向同一數(shù)組中的下一個(gè)元素。
11、用指針變量作函數(shù)形參接受數(shù)組地址。數(shù)組指針和指針數(shù)組的區(qū)別
#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、一個(gè)int占多少個(gè)字節(jié)?
13、實(shí)參和形參的結(jié)合有一下4種形式:
| 實(shí)參 | 形參 |
| 數(shù)組名 | 數(shù)組名 |
| 數(shù)組名 | 指針變量 |
| 指針變量 | 數(shù)組名 |
| 指針變量 | 指針變量 |
14、實(shí)參數(shù)組名a代表一個(gè)固定的地址,或者說是指針常量,因此其值不可改變;形參數(shù)組名是指針變量,可以改變。// a++ //語法錯(cuò)誤,不可改變
15、字符串與指針。字符串?dāng)?shù)組/字符串變量/字符指針 存放字符串。
//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、函數(shù)與指針。函數(shù)的入口地址就稱為函數(shù)的指針。
1)、用函數(shù)指針調(diào)用函數(shù)
函數(shù)類型 (*變量名)(函數(shù)形參表)
#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)、用指向函數(shù)的指針作函數(shù)參數(shù)。
3)、返回指針值的函數(shù):指針函數(shù)。
類型名 *函數(shù)名(參數(shù)列表);int *a( int x,int y);
17、


1)、指向常量的指針(不允許通過指針變量修改它指向的對(duì)象的值)
const 類型名 *指針變量名
2)、常指針(指定指針變量的值為常量,即指針變量的指向不可改變)
類型名 *const 指針變量名
Tips:必須在定義是初始化,指定其指向。
指針變量的指向不可改變,但指針變量的指向變量的值可以改變。*p2=12;//合法
注意(const和*的位置)。const在*后面,請(qǐng)與定義指向常變量的指針變量的形式比較。
3)、指向常量的常指針(指針變量指向一個(gè)固定的對(duì)象,該對(duì)象的值不能改變)。
const 基本類型名 *const 指針變量名
18)、void指針類型
以上這篇C和指針小結(jié)(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++虛函數(shù)表與類的內(nèi)存分布深入分析理解
對(duì)C++ 了解的人都應(yīng)該知道虛函數(shù)(Virtual Function)是通過一張?zhí)摵瘮?shù)表(Virtual Table)來實(shí)現(xiàn)的。簡(jiǎn)稱為V-Table。本文就將詳細(xì)講講虛函數(shù)表的原理與使用,需要的可以參考一下2022-08-08
C/C++實(shí)現(xiàn)獲取系統(tǒng)時(shí)間的示例代碼
C 標(biāo)準(zhǔn)庫提供了 time() 函數(shù)與 localtime() 函數(shù)可以獲取到當(dāng)前系統(tǒng)的日歷時(shí)間。本文將通過一些簡(jiǎn)單的示例為大家講講C++獲取系統(tǒng)時(shí)間的具體方法,需要的可以參考一下2022-12-12
解析c中stdout與stderr容易忽視的一些細(xì)節(jié)
本篇文章是對(duì)在c語言中stdout與stderr容易忽視的一些細(xì)節(jié)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C語言數(shù)據(jù)結(jié)構(gòu)的時(shí)間復(fù)雜度和空間復(fù)雜度
算法在編寫成可執(zhí)行程序后,運(yùn)行時(shí)需要耗費(fèi)時(shí)間資源和空間(內(nèi)存)資源 。因此衡量一個(gè)算法的好壞,一般是從時(shí)間和空間兩個(gè)維度來衡量的,即時(shí)間復(fù)雜度和空間復(fù)雜度,感興趣的同學(xué)可以參考閱讀2023-04-04

