(1)指针是存放地址值的变量或者常量。例如:inta=1;&a就表示指针常量(“&”表示取地址运算符,也即引用)。int*b,b表示的是指针变量(注意,是b表示指针变量而不是*b),*表示要说明的是指针变量。大家注意int*b[2]和int(*b)[2]是不同的,int*b[2]表示一个指针数组,而in..
分类:
编程语言 时间:
2014-11-09 11:21:13
阅读次数:
196
二级指针的内存模型
二级指针的第一种内存模型
Char*Accary [ ]
={ “aaaaaa”, ”bbbbbb”, ”ccccccc” };
//接口形参使用方式
Intprintfarr(char
**ArrayStr,int iNUm)
{
For(i =0; i
{
Printf(“%s \n”, ArrayStr[i]...
分类:
其他好文 时间:
2014-11-08 13:42:03
阅读次数:
214
指针指针与数组指针与字符串指针与函数??指针与数组1.数组名:数组元素首地址eg:int array[3]={1,3,6};这里array 恒等于&array[0]2.int *p = a; int *p = 0; int a[]={0};3.int *p = a; 均指向数组的首...
分类:
编程语言 时间:
2014-11-07 22:02:54
阅读次数:
256
主要内容:指针和数组细节,"//"的可移植性说明
#include
int main(int argc, char **argv)
{
int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
#if 0
/*
按移植性来说,在《c语言程序设计--现代方法》指出要用当前注释方法,而不是//
因为一些编译可能不支持
*/
// 错误举例
while(*...
分类:
编程语言 时间:
2014-11-07 19:03:56
阅读次数:
200
使用C语言就必然会使用到指针和数组。看下面的代码:intmain(intargc,char**argv){
inta[4]={1,3,5,7};
int*p=a;
inti;
for(i=0;i<4;i++){
printf("i=%d,p[i]=%d,*(p+i)=%d,a[i]=%d,*(a+i)=%d\n",
i,p[i],*(p+i),a[i],*(a+i));
}
return0;
}似乎二者的用法完全相同,但其实..
分类:
编程语言 时间:
2014-11-06 17:53:37
阅读次数:
199
1、数组指针数组指针,指向数组的指针,本质上是一个指针。如下,该指针指向了一个有4个int类型元素的数组。int (*p)[4];#include int main(){int (*p)[4];int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10}};p=&a[0];int....
分类:
编程语言 时间:
2014-11-03 17:45:12
阅读次数:
127
晚上被问到一个C++的问题:
int **pa=new int* [5];
int *pb=new (int*)[5];
上面两行代码的区别是什么?
分析与实验结果如下:
(1)第一行代码可以在VS2010上正常运行,new出来的是一个存放int型指针变量的数组,可以存放5个这样的元素。
而第二行代码则编译错误,悲剧的是VS2010在编译之前并未红线提示错误。
(2)设计了如...
分类:
其他好文 时间:
2014-11-03 00:08:50
阅读次数:
424
左值:出现在赋值符左边的符号有时称为左值。
右值:出现在赋值符右边的符号有时称为右值。
编译器为每个变量分配一个地址(左值),这个地址在编译时可知,而且该变量在运行时一直保存于这个地址。相反,存储于变量中的值(它的右值)只有在运行时才可知。如果需要用到变量中存储的值,编译器就发出指令从指定地址读入变量值并将它存于寄存器。
可以看到,每个符号的地址在编译时可知。
对比一下几个式子:
//常...
分类:
编程语言 时间:
2014-10-31 22:17:23
阅读次数:
286
1 #include 2 using namespace std; 3 double calculate(double x ,double y ,double (*pf[3])(double,double)); 4 double add(double x ,double y); 5 double ....
分类:
编程语言 时间:
2014-10-30 16:58:43
阅读次数:
222
以前在书上看到函数指针相关的都没怎么重视,但是最近在实际的工作中却派上了用场。所以认真地学习了一遍。
函数指针的申明
申明一个函数指针很简单,就是将函数申明中的函数名替换为一个指针即可:
C/C++int test(int para1, double *para2); // 函数申明
int (*pf)(int para1, double *para2); // 函数指针申明...
分类:
编程语言 时间:
2014-10-30 13:31:31
阅读次数:
255