【C语言】C语言基础知识1. tip01~10
2015-02-09 17:29
295 查看
1. 在linux下64位c程序,请计算输出的三个sizeof分别是()
5,5,8
6,6,4
6,8,4
6,8,8
答案:D
这里主要是区分sizeof运算符的测量对象。sizeof对数组求长度为数组的真实长度,字符串数组的长度要加上最后的'\0'字符。
sizeof(str)测量的是字符数组的占用长度,注意字符串后还有个\0,所以是6
sizeof(p)测量的是指针的占用长度,64位机器的指针占8个字节。
sizeof(str_arg)测量的是指针长度,因为这里是形参。
2.如果x=2014,下面函数的返回值是()
20
21
23
25
答案:23
这个作用是对整型中0的个数进行统计,x=x|(x+1);的作用是每次循环把x的二进制中从右往左数的最后一位0变成1,直道变成全1的时候x+1就溢出为全0,循环结束。
2014的二进制是0000 0000 0000 0000 0000 0111 1101 1110,所以结果是23
还有类似的题目,迭代式为x=x&(x-1),作用是统计x二进制中1的个数
x|(x+1)的作用是对一个数中二进制0的个数进行统计
迭代式为x=x&(x-1),作用是统计x二进制中1的个数
void func(char str_arg[100]) { cout<<sizeof(str_arg)<<endl; } int main(int argc,char* argv[]) { char str[]="Hello"; char *p=str; cout<<sizeof(str)<<endl; cout<<sizeof(p)<<endl; func("test"); return 0; }
5,5,8
6,6,4
6,8,4
6,8,8
答案:D
这里主要是区分sizeof运算符的测量对象。sizeof对数组求长度为数组的真实长度,字符串数组的长度要加上最后的'\0'字符。
sizeof(str)测量的是字符数组的占用长度,注意字符串后还有个\0,所以是6
sizeof(p)测量的是指针的占用长度,64位机器的指针占8个字节。
sizeof(str_arg)测量的是指针长度,因为这里是形参。
2.如果x=2014,下面函数的返回值是()
int fun(unsigned int x) { int n=0; while((x+1)) { n++; x=x|(x+1); } return n; }
20
21
23
25
答案:23
这个作用是对整型中0的个数进行统计,x=x|(x+1);的作用是每次循环把x的二进制中从右往左数的最后一位0变成1,直道变成全1的时候x+1就溢出为全0,循环结束。
2014的二进制是0000 0000 0000 0000 0000 0111 1101 1110,所以结果是23
还有类似的题目,迭代式为x=x&(x-1),作用是统计x二进制中1的个数
x|(x+1)的作用是对一个数中二进制0的个数进行统计
迭代式为x=x&(x-1),作用是统计x二进制中1的个数
相关文章推荐
- 基础知识01 - 零基础入门学习汇编语言01
- 分支程序设计01 - 零基础入门学习C语言10
- 《如何使用UML》培训 01.基础知识(1)UML语言构成
- JavaScript语言基础知识10
- 汇编语言学习笔记...01.基础知识
- 黑马程序员——IOS基础之C语言---C语言基础知识介绍
- C语言为什么要加#include<stdio.h>(C语言基础结构知识)
- C语言基础知识之(四):C语言中涉及的数字问题
- 黑马程序员——C语言基础01—C语言概述
- 黑马程序员——Java语言基础——01.基础知识【基本常识】【java概述】【配置环境变量】
- 设计模式 01 统一建模语言基础知识
- 分支程序设计01 - 零基础入门学习C语言10
- 汇编语言笔记01-基础知识
- c语言之c语言基础知识
- 学ios需要了解的C语言基础知识-11-C语言精华总结
- C语言基础:C语言指针(4) - 补充一点关于指针的小知识
- C语言2011计算机二级c语言考点:c语言的基础知识
- 汇编语言学习(基础知识)01
- 学ios需要了解的C语言基础知识-10-内外部函数,内外部变量
- Linux基础入门及系统管理01-Linux运维必备知识-用户及权限详解10