1. 理解并运行下列程序
// T * 就是 “T的指针类型”
// T * p 就是 “T的指针类型”的变量p
int main(){
int ival = 1024;
int *pi = &ival;
int **ppi = π // "int **" 即使 "(int *) *"就是 "int的指针的指针类型"
std::cout
std::cout
std::cout
std::cout
std::cout
}
2. 理解并运行求C风格字符串(最后有结束字符的字符数组)长度的函数。
#include
#include //C语言字符串处理函数头文件
int StrLen(const char *s){
const char *p = s;
while(*p!='\0')p++;
return p-s;
}
int strLen(const char *s){
int i = 0 ;
while(s[i]!='\0')i++;
return i;
}
int main(){
const char * str = "hello world"; // char str[] = {'h','e','l','l','o',...'d','\0'};
int len = strlen(str); //C语言自带的求字符串长度函数strlen
std::cout
len = strLen(str);
std::cout
len = StrLen(str);
std::cout
}
3. 编写比较2个C风格字符串的大小的函数strCmp,模仿C语言自带的比较大小函数strcmp.
/*strcmp(s1,s2)
s1 = {'h','e','\0'}
s2 = {'h','e','l','l','\0'}
s1 = {'h','e','l','l','\0'}
s2 = {'h','e','\0'}
*/
// s[i] : *(s+i)
int strCmp(const char *s1,const char *s2){
//你的代码
// ...
}
int main(){
char s1[] = {'h','e','\0'};
char s2[] = {'h','e','l','l','\0'};
int ret = StrCmp(s1,s2);
std::cout
else if(ret==0)
std::cout
else
std::cout"
}
4. 估计下列代码运行结果是什么?有什么错误?运行改程序,验证你的判断。
int main(){
int i,arr[5];
int *p = &i;
*p = 6;
std::cout
int *q = arr;
std::cout
*(p+2) = 20;
*(q+2) = 20;
std::cout
for(int i = 0 ; i
q[i] = i*10;
for(int i = 0 ; i
std::cout
for(int *s = q; s!= (arr+5) ; s++)
std::cout
std::cout
}
领取专属 10元无门槛券
私享最新 技术干货