抽象类
抽象类可以不包含抽象方法,包含抽象方法的类一定是抽象类,抽象方法必须在子类中实现。
20
机器平台:X86_64 处理器
Size of char is: 1
Size of int is: 4
Size of short is: 2
Size of long is: 8
Size of long int is: 8
Size of float is: 4
Size of double is: 8
Size of long double is: 16
Size of (所有指针) is: 8
机器平台: X86_32 处理器
区别:
Size of long is: 4
Size of long int is: 4
Size of long double is: 8
Size of (所有指针) is: 4
int main()
{
int i=10;
int j=1;
const int *p1;//(1)
int const *p2=&i; //(2)
p2=&j;//(3)
int *const p3=&i;//(4)
*p3=20;//(5)
*p2=30;//(6)
p3=&j;//(7)
return 0;
}
6 7
c风格字符串的两种形式:
1、char a[] = {‘a’, ‘b’,‘v’, ‘\0’}; 手动添加结束符‘\0’
2、char a[] = “abv”; 默认添加’\0’
c/c++中基本类型只有整型、实型和字符型,不存在字符串类型;字符串是由字符组成的数组
空白符,包括空格、制表符、换行符,只是用来占位,没有实际内容。对于编译器来说,有的会被忽略(一般是在()中);有的不会被忽略(一般是在“”中)
标识符在C语言 中一般是8字符,在C++中一般是32字符,在Java中则没有限制
const int N = 5; int a[N];
1、定义数组,中括号内必须是常量。
2、int a(5)等价于 int a = 5;不是数组
char C[5]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s”,C);
答:ab
%s格式符意为输出字符串,输出字符串时,遇到 “\0”表示结束,所以结果是ab;
int a[4][5],(*p)[5];
p=a;
下面哪个选项表示a数组中的元素?
正确答案: D
a: p+1
b:(p+3)
c:(p+1)+3
d:*( * p+2)
a是一个二维数组,p是一个指向有5个元素的数组指针,所以最多只能访问。
A:表达式是一个指针,不是对数组元素的引用。(p+1)等于&a[1],即(p+1)指向a的第二行的首元素。
B:(p+3)是一个指针,指向第4行的首元素。
C:(p+1)指向a的第二行的首元素;(p+1)+3则指向第二行的第3个元素。
D: ( *p+2)是对数组元素的正确引用,它等价于a[0][2]。
所以对a数组元素的正确引用的选项是D。
TAB、空格或逗号
1.这里的“从键盘上输入多于一个数据”,应该专门指的是一次性从键盘上输入多于一个数据。这样子,代码中就不能出现循环,必须在所有输入的结束处刷新缓存。默认情况下,回车会刷新输入缓存。排除含有回车的选项。
2. 分号通常当作普通字符处理。排除含有分号的选项。
3. 如果逗号作分割符,存在中英文字符不同、输入内容错误等几个问题。
正确答案: A 你的答案: D (错误)
a根据某一条件重复执行一部分代码直到满足终止条件为止
b可以根据条件控制程序流程,改变程序执行的顺序
c选择语句可以嵌套使用
d当条件满足时就会执行相应的语句
流程控制语句分类:
顺序结构
选择结构:if语句、switch语句
循环结构:while语句、for语句
int i=0;
const int ci=i;
auto b=ci; //(1)
int *p=&i;
decltype(*p) c=i;//(2)
以上(1)(2)中变量b,c类型为()
正确答案: B 你的答案: D (错误)
const int ,int
int,int&
const int,int*
int,int*
decltype和auto都可以用来推断类型,但是二者有几处明显的差异:
1.auto忽略顶层const,decltype保留顶层const;
2.对引用操作,auto推断出原有类型,decltype推断出引用;
3.对解引用操作,auto推断出原有类型,decltype推断出引用;
4.auto推断时会实际执行,decltype不会执行,只做分析。总之在使用中过程中和const、引用和指针结合时需要特别小心。