size_t 的真正类型
typedef unsigned int size_t;
实数后的’l’、’d’以及缺省
- 缺省为:double,
- ‘l’:long double
- ‘f’:float
std::cout << sizeof(12) << std::endl;
// 4
std::cout << sizeof(12.) << std::endl;
// 8
// double
std::cout << sizeof(12.l) << std::endl;
// 8
// long double
std::cout << sizeof(12.f) << std::endl;
// 4
// float
sizeof vs strlen
char buf[] = "hello";
// buf[0] = 'h'
// buf[1] = 'e'
// buf[2] = 'l'
// buf[3] = 'l'
// buf[4] = 'o'
// buf[5] = '\0'
sizeof(buf) ⇒ 6
// 实际所占内存空间大小
// 也是数组名不同于指针的明证
strlen(buf) ⇒ 5
// 遇'\0'结束
数组的初始化
int a[5] = {0};
// 全部初始化为 0
char a[5] = {0};
// sizeof(a) == 5
// strlen(a) == 0:遇0结束
算符优先级
(1)&a->
-> 的优先级要大于 &,也即 &a-> 等价于 &(a->):则要求 a 为指针类型;
逗号表达式
if (x = foo(), x == "ok")
{
}
逗号表达式的结果是最后一个表达式的返回值,逗号表达式一般见于 if 语句:
将 int 变量值保存到 char* 中
int x = 10;
char buf[10];
(1)使用 itoa:
itoa(x, buf, 10); // 10 表示以10进制存储
(2)使用 sprintf()
sprintf(buf, "%d", x);
(3)C++ 使用 字符串流
int x = 123; char buf[10]; stringstream ss; ss << x; ss >> buf;