69,373
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int array[6] = {0, 1, 2, 3, 4, 5};
cout << (int *)&array << endl;
cout << (int *)array << endl;
cout << (int *)&array[0] << endl;
cout << "=====================" << endl;
cout << (int *)(&array + 1) - (int *)&array << endl; // 输出为6,&array + 1中的加1是加一个array数组的大小
cout << (int *)(array + 1) - (int *)array << endl; // 输出为1,array + 1中的加1是加一个array数组元素的大小
cout << (int *)(&array[0] + 1) - (int *)&array[0] << endl; // 输出为1,&array[0] + 1中的加1也是加一个array数组元素的大小
return 0;
}
char ar[]="hello";
printf("%s",array); //这时候输出正常
char ar2[]={'h','e','l','l','o'};
printf("%s",array); //这里会输出异常,具体的异常跟各个编译器不同的实现有关系,例如我用的gcc,就在输出hello之后,输出了一个乱码。
printf("%s",&array)
的时候,我的编译器会提示一个类型不匹配的warning