对大家有帮助的问答会被标记为“推荐”,看完课程过来浏览一下别人提的问题,会帮你学得更全面
#include <iostream>
using namespace std;
void tower(int h){
tower(h-1);
if(h==0) return ;
int a=(int)'A';
for(int i=0;i<h;i++){
cout<<(char)(a+i);
}
for(int i=h-2;i>=0;i--){
cout<<(char)(a+i);
}
cout<<endl;
}
int main()
{
tower(4);
return 0;
}
老师,为什么我把tower(h-1)放在if(h==0) return;上边,程序就崩溃了?
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
char buf[100];
char a[]="abc";
char b[]="1234";
const char *s1=a;
const char *s2=b;
strcpy(buf,s1);
strcat(buf,s2);
cout<<buf<<endl;
cout<<s1<<endl;
cout<<*s1<<endl;
return 0;
}
//老师,我对这里的指针有点问题,我把拼接那里的库函数的例子写成这样。char*s1=a,那s1不是储存了a的地址吗?我cout s1却不是一个地址
2.对于函数 void f(int p[3]), 说法正确的是
A 调用时,必须传入一个含有三个元素的整型数组
B 函数内部:sizeof(p) 会返回 12
C 函数内部用 *(p+1) = ... 是错误的写法,应该: p[1] = ...
D 调用时,传入任何 int* 类型的实参,都能编译通过
选择B为什么不对,实验的时候就是12呀
选择D也不太理解,这个传入是指哪个代码
#include<iostream>
using namespace std;
int main()
{
int a[3]={1,2,3};
int b[3]={1,2,3};
int c[4]={1,2,3,4};
int* p=a;
int* q=b;
int* w=c;
cout << (a==b)<<endl;
cout << a << endl << b << endl <<p<< endl ;
cout << sizeof(a)<< endl <<sizeof(p)<< endl <<sizeof(b)<<endl<<sizeof(q)<< endl <<sizeof(c)<< endl <<sizeof(w);
}
输出:
0
0x6ffdf0
0x6ffde0
0x6ffdf0
12
8
12
8
16
8
为什么指针内存输出的是8不是4呢
#include<iostream>
using namespace std;
int main()
{
int a[3]={1,2,3};
int b[3]={1,2,3};
// int c[4]={1,2,3,4};
int* p=a;
int* q=b;
// int* w=c;
// cout << (a==b)<<endl;
// cout << a << endl << b << endl <<p<< endl ;
// cout << sizeof(a)<< endl <<sizeof(p)<< endl <<sizeof(b)<<endl<<sizeof(q)<< endl <<sizeof(c)<< endl <<sizeof(w);
cout << a <<endl;
cout << &a << endl;
cout << a+1 <<endl;
cout << &a+1 <<endl;
}
输出: 0x6ffe00 0x6ffe00 0x6ffe04 0x6ffe0c 这个第四个为什么加个c
a是数组
int a[3] ={1,2,3};
cout << a << endl ;
cout <<a + 1 << endl ;
得出 a+1比a多4,为啥说是按指针来计算
老师,那道100以内的素数这道题,能不能在for前面加一个int sum=0;然后就省略bool tag=ture;,最后这道题用coutinue语法
+=是什么意思
double a= 3.66;
int b=(int)a;取整数用double 是不是就取3.66了
int dectoi(char* p) { int x = 0; while (*p) { x = x * 10 + (*p - '0'); p++; } return x; }
十进制转int类型,它是怎么一个一个数取出来的?