C/C++ 指针 数组 const 函数
来源:互联网 发布:电脑如何切换网络 编辑:程序博客网 时间:2024/05/24 06:15
用变量a给出下面的定义
a) 一个整型数(An integer)
b) 一个指向整型数的指针(A pointer to an integer)
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer toan integer)
d) 一个有10个整型数的数组(An array of 10integers)
e) 一个有10个指针的数组,该指针是指向一个整型数的(Anarray of 10 pointers to integers)
f) 一个指向有10个整型数数组的指针(A pointerto an array of 10 integers)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a functionthat takes an integer as an argument and returns an integer)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argumentand return an integer )
答案:
a) int a; // An integer
b) int *a; // A pointer to an integer
c) int **a; // A pointer to a pointer to an integer
d) int a[10]; // An array of 10 integers
e) int *a[10]; // An array of 10 pointers to integers
f) int (*a)[10]; // A pointer to an array of 10 integers
g) int (*a)(int); // A pointer to a function a that takes an integer argumentand returns an integer
h) int (*a[10])(int); // An array of 10 pointers to functions that take aninteger argument and return an integer
关于const指针 有如下一段小程序来解释.程序在VC6.0下编译通过.
// xxx.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>int main(int argc, char* argv[]){int va =10;int vb = 32;int vc = 45;int vd = 67;const int * pa;int const * pb;int * const pc = &vc;int * pd;pa = &va;pb = &vb;pd = &vd;printf("va = %d\tvb=%d\tvc = %d\tvd=%d\n",va,vb,vc,vd);//编译不通过,报错如下://xxx.cpp(28) : error C2166: l-value specifies const object//const * pa. pa指向的内容是不可修改的//(*pa) ++;//正确 相当于 expression=*pa,pa=pa+sizeof(*pa)*pa ++;//正确 相当于 expression=*pb,pb=pb+sizeof(*pb)*pb ++;//编译不通过,报错如下://xxx.cpp(38) : error C2166: l-value specifies const object//*pc ++;//正确 *const pc . 仅表示pc指针本身不可修改,与所指向的目标无关(*pc)++;//编译不通过,报错如下://xxx.cpp(46) : error C2166: l-value specifies const object//因为 *const pc. pc不可修改,此行试图修改pc//pc = pd;//指针的转换//把一个可以自由操作的指针赋值给一个功能受限的指针 //由于pa所能进行的操作在pd中都允许,所以赋值可以进行pa = pd;//编译不通过,报错如下://xxx.cpp(56) : error C2440: '=' : cannot convert from 'const int *' to 'int *'//此行试图通过改用指针变量的方法来通过指针修改一个本来无法用指针修改的变量//pd = pa;//正确,相当于把一个常量赋值给一个变量,只是两个变量都是指针pd = pc;printf("pa = %d\t*pa=%d\n",pa,*pa);printf("pb = %d\t*pb=%d\n",pb,*pb);printf("pc = %d\t*pc=%d\n",pc,*pc);printf("pd = %d\t*pd=%d\n",pd,*pd);return 0;}
- C/C++ 指针 数组 const 函数
- C/C++指针与const、数组、函数
- [C]函数指针数组
- C 函数指针数组
- C函数指针数组
- C 语言中 const,指针,数组例子
- c++const指针与函数调用
- 指针&函数&数组&const
- [C学习]函数,指针,数组
- C语言:数组 指针 函数
- c有关函数指针数组
- C语言函数指针数组
- C++(typedef、一维数组转成二维数组、C和C++区别、成员地址成员指针、构造析构函数、this指针、const用法、显示时间、const用法)
- 【C语言】函数,函数指针;指针数组,数组指针。
- C语言:指针数组、const指针+计算机系统:字节顺序
- [c/c++]如何声明函数指针数组
- C语言_函数指针数组指针
- c++const指针
- AIX 与oracle优化(非计算内存与计算内存)
- Linux下定时备份MySQL数据库的Shell脚本
- 【iOS-Cocos2d游戏开发之十】添加粒子系统特效并解决粒子特效与Layer之间的坐标问题;
- Java虚拟机的深入研究
- 可取性、适用性、可行性:内存计算技术的影响[zz]
- C/C++ 指针 数组 const 函数
- DBUnit导数据报表名超长、MBCS字段被截断
- C++ Operator Precedence 运算符优先级
- 平凡中的哲理
- C++ 人工神经网络类 。。有错误。。先留着吧。
- 大数据和内存计算提升数据中心效率
- 输入a和b两个整数,按先大后小的顺序输出a和b。(用指针变量处理)
- C/C++运算符优先级
- CSDN技术博客文章模板