标签:
与指针指向简单变量定义有些差别,
| int wages[3] = { 10, 11, 12 }; int *pt; | 
?
指针指向数组定义的方法有三种:
(1)
| int *pt = &wages[0]; | 
(2)
| int *pt = wages; | 
(3)
| int *pt; pt= wages; | 
?
2、对于数组,其有如下特点:
| cout << arrayname << endl; //输出数组第一个元素的地址 cout << &arrayname[0] << endl; //输出数组第一个元素的地址 | 
即
| arrayname = &arrayname[0]; | 
数组是特殊的指针,任何数组都满足:
| typeName arrayname[0] = *arrayname; typeName arrayname[i] = *(arrayname + i); | 
?
3、关于指针、数组占据内存的大小有:
| cout << sizeof(arrayname) << endl; //输出的是整个数列元素所占内存的大小 cout << sizeof(arrayname[i]<< endl; //输出的是数列中一个元素所占内存的大小 cout << sizeof(pointname) << endl; //输出是指针所占内存的大小,对于一台设备是固定值,不随指针所指数据类型变化而变化 cout << sizeof(*pointname) << endl; //输出是指针所指数列中一个元素所占内存的大小 | 
?
| cout << pointname << endl; cout << &arrayname[0] << endl; //三者等价 cout << &arrayname << endl; | 
即
| *pointname = arrayname[0]; pointname = &arrayname[0]; | 
标签:
原文地址:http://www.cnblogs.com/jianxiong/p/5208581.html