零碎知识点

1,一个int占几个字节?

在16 位系统下,占2个字节,在32,64位系统下占4个字节。

2,一个汉字占几个字节?

GBK编码格式,一个汉字占两个字节,UTF-8 格式下,不确定,

3,

#define BUG(X,Y) (X+1)*Y
int main()
{
    int a = 3;
    int b = 4;
    printf("%d\n", BUG(a++, b++));
    return 0;
}

答,结果是16

分析:宏替换后,(a++ + 1)* b++  ,先执行 a+1 ,则括号内等于4,之后才有a++等于4,原式等于(4)*b++

          那肯定是先执行后加加,(4)*4=16  ,最后a=4,b=5

 

4,

二叉树中度为0的节点数等于度为2的节点数-1    n2=n0-1   度就是子树的数。

5,各种0的区别

   _pStr= 0;   --->把指针改成0,把指针指空,内存泄漏。

   _pStr='\0'; ----->把指针改成空。内存泄漏

  *_pStr=0;   ------->将空间改成0,又因为0 就是 '\0' ,所以可以当字符串的结尾。一般不要用,不太清晰。

  *_pStr='0'; -------->字符0,和数字0 ,‘\0’,没有关系,不能作为字符串的结尾。

  *_pStr='\0';  --------->可以作为 结尾。

总结:数字0 就是 字符 ‘\0’

 

6,

空类(就是没有变量和虚函数)的大小是1,只有虚函数时是4.

 

7,

Linux下哪个命令可以用于判断host1主机是否能够访问host2主机的端口  telnet

8,在一个C类地址段内,需要将网络划分为 7个子网,每个子网有15个主机,则将使用哪个子网掩码 ()

      7个子网,用三位表示就行,因为2^3=8   

       所以子网掩码==  11111111  11111111  11111111  111 00000

                           255.255.255.224

9,

void print(char ** p)
{
	*p += 2;//p是指向第一个指针的指针,通过p指针改变第一个指针的指向,
			//但并没有改变p指针与第一个指针的关系
}
int main()
{
	char * a[] = { "123", "asdf", "qwer" };//实际上数组存放了3个char*指针,
	                                       //第一个指向了“1”
										   //第二个指向了“a”
										   //第三个指向了“q”
										   //数组名a表示首元素的地址,也就是第一个指针的地址
										   //类型是char**
	char** p;
	p = a;
	print(p);
	cout << **p << endl;//两次解引用得到p指针指向的指针指向的变量
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值