C与C++的一点区别

  1. void*指针赋值给另一个类型的指针时,C++规定必须进行强制类型转换,但在C语言中却无必要
// C
char *ptr = NULL;
ptr = realloc(dynamic, total_elemet);
// C++
char *ptr = NULL;
ptr = (char*)realloc(dynamic, total_elemet);
  1. 在C++中一个内层作用域的结构名将会隐藏外层空间中相同的对象名。在C语言中并非如此。

  2. 在C++中字符常量的类型是char,但在C语言中,它们的类型是int。也就是说,在C++中,sizeof('a')的结果是1, 而在C语言中,他的值要大一些。

// C
sizeof('a'); //  结果为4(在int型为32位的机器上)
// c++
sizeof('a'); //  结果为1

《C专家编程》P267

你可能感兴趣的:(C与C++的一点区别)