复习——C++

1、scanf和scanf_s区别

2、取地址,输出

复制代码
char b='a'; 
char* p=&b; 
cout<<*p;
cout<<p; 
p=(char*)"abc";
cout<<*p;
cout<<p;
cout<<(void*)p;

取地址,把b的地址给p

输出*p,是输出p的空间内的值;输出p,由于默认规则,会输出p是char*类型,cout会将其解释为C风格字符串,输出字符串,同时,由于没有'\0',会一直向后输出,因此输出为a加乱码

p为"abc"

输出*p,为abc;输出p,默认为char*类型,输出为abc,因为字符串末尾自带\0,不输出乱码;输出(void*)类型,将指针p强制转换为void*类型,cout会输出该指针的值(即字符串常量"abc"的首地址)