- 指针的初始定义
与指针指向简单变量定义有些差别,
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]; |
时间: 2024-12-19 04:15:29