【C++】变量存放区域

来源:互联网 发布:matlab矩阵每行最小值 编辑:程序博客网 时间:2024/06/07 03:32
1.下面程序的错误?
char *strA(){char str[] = "hello word";//分配一个局部数组//局部数组分配在栈中,函数结束后栈中内容就被回收,这个结果不确定且不安全char *str = "hello word";//分配一个全局数组//对应内存中的全局区域(静态存储区)  函数结束时不会被回收static char str[] = "hello word";//通过static关键字声明,数组被分配在了全局区域,开辟了一段静态存储空间return str;}
2. 下面程序的运行结果?
<pre name="code" class="cpp">int _tmain(int argc, _TCHAR* argv[]){int a[3];a[0] = 0, a[1] = 1, a[2] = 2;int *p, *q;p = a;cout << p << '\n';//addresscout << *p << '\n';//0q = &a[2];cout << q << '\n';//addresscout << *q << '\n';//2cout << a[q - p] << '\n';//q的地址减去p的地址,再除以sizeof(int),也就是2,a[2]cout << a[*q - *p] << '\n';//q的内容减去p的内容,还是2, a[2]return 0;}
                                             
0 0
原创粉丝点击