国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

指針的使用

2019-11-06 06:04:16
字體:
來源:轉載
供稿:網友

                 指針的使用

 

1.注意:一定要在對指針應用解除應用操作符(*)之前,將指針初始化為一個確定的地址。

例子:

#include<stdio.h>

Int main()

{

Int a;

Int *p;

/*****************指針的錯誤用法:對沒有指向確定的地址*******************/

*p=10;  

/************************************************************************/

 

//正確使用方法

P=&a;

*p=10;

}

 

C++中還可以使用new來給指針確定地址。

例子:

#include<iostream>

Int main()

{

Int a[4]=new int[4];

Int i=0;

For(i=0;i<4;i++)

  a[i]=i;

Delete[] a;

}

 

2.二維數組指針定義:

對于int **p來說,p所指的對象是指針,那么++p就是讓p的值增一個指針的大小,雖然指針所指對像可大可小,但是指針自己的大小卻是一定的,目前的系統上一般是4字節(64位系統我沒用過,可能是8字節)。也就是說,對char *p和long *q來說,p和q本身占內存容量是一樣大的(雖然char和long占內存不一樣大)。  很多人以為“指向數組的指針”就是“指向指針的指針”,于是有人寫這樣的代碼:int a[2][3];int **p = a;//錯誤  這個代碼的錯誤之處在于a是一個數組,它的成員也是數組,所以a叫做“數組的數組”——C++中嚴格說來沒有二維數組。那么,你要用一個指針來記錄a,就要用一個能表示“數組的數組”的指針,以下代碼是正確的:int (*p)[3] = a;//正確  只有這樣才能保證++p使p指向a的下一對像(該對像是一個數組)。  順便提一句:不要寫成“int *p[3];”

int *p[3];//定義p[3]為指針數組

int (*q)[3];//定義q為數組指針

int a[4][3];//定義一個二維數組

 

 

 

3.指向指針的指針

#include<stdio.h>

Int main()

{

Int a[5]={1,3,5,7,9};

Int *num[5]={&a[0],&a[1],&a[2],&a[3],&a[4]};   //定義一個指針數組

Int **p,i;

P=num;

For(i=0;i<5;i++)

{

PRintf(“%d”,**p);

P++;

}

Printf(“/n”);

}

 

 

4.指向函數的指針

 

#include<stdio.h>

Int (*p)(int,int);

Int printf_one(int,int);

Int printf_two(int,int);

Int main()

{

  P=printf_one;

  P(1,2);

  P=printf_two;

  P(3,4);

}

 

Int printf_one(int a,int b)

{

  Printf(“輸出a:%d,輸出b:%d/n”,a,b);

}

Int printf_two(int a,int b)

{

Printf(“輸出a:%d,輸出b:%d/n”,a,b);

}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂昌县| 临泽县| 高淳县| 绍兴市| 宁德市| 太湖县| 上蔡县| 宝应县| 开鲁县| 拉孜县| 新乡市| 河曲县| 彩票| 增城市| 临朐县| 泸州市| 抚宁县| 赤壁市| 太原市| 临沂市| 留坝县| 通州区| 双鸭山市| 万盛区| 察隅县| 天峻县| 大埔区| 嘉峪关市| 河曲县| 米脂县| 万全县| 虹口区| 门源| 富平县| 竹山县| 黎城县| 龙海市| 安平县| 呼和浩特市| 刚察县| 呼伦贝尔市|