本文主要是介绍c++ primer 练习 3.37、3.38、3.39、3.40,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
3.37
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{const char ca[] = {'h', 'e', 'l', 'l', 'o'};const char *cp = ca;while (*cp) {cout << *cp << endl;++cp;}return 0;
}
out:
h
e
l
l
o
a
3.38
纯属搬运
Pointer addition is forbidden in C++, you can only subtract two pointers.The reason for this is that subtracting two pointers gives a logically explainable result - the offset in memory between two pointers. Similarly, you can subtract or add an integral number to/from a pointer, which means "move the pointer up or down". Adding a pointer to a pointer is something which is hard to explain. What would the resulting pointner represent?If by any chance you explicitly need a pointer to a place in memory whose address is the sum of some other two addresses, you can cast the two pointers to int, add ints, and cast back to a pointer. Remember though, that this solution needs huge care about the pointer arithmetic and is something you really should never do.
3.39
1
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
#include<cstring>
int main()
{const char ca1[] = "string-A";const char ca2[] = "string-B";if (strcmp(ca1 , ca2) > 0) {cout << "string-A big" << endl;} else {cout << "string-B big" << endl;}return 0;
}
2
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
#include<string>
using std::string;
int main()
{string s1 = "string-A";string s2 = "string-B";cout << "Big one is: ";if (s1 > s2) {cout << s1 << endl;} else {cout << s2 << endl;}return 0;
}
#include<cstring>
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
int main()
{char s1[100] = "stringA";char s2[] = "stringB";strcat(s1 , s2);char s[100];strcpy(s , s1);cout << s << endl;return 0;
}
这篇关于c++ primer 练习 3.37、3.38、3.39、3.40的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!