分享

【基础】关于C/C++小知识积累

 勋的图书馆nacs 2016-04-20

1. 关于const用法

const int a 和 int const a是一样的

const int *a 意味着a是指向一个常整型数的指针(也就是说整型数是不可修改的,但是指针可以)

int *const a 意思是a是一个指向整型数的常指针(也就是说指针指向的整型数是可以修改的,但是指针是不可以修改的)

int const *a const 意思是a是一个指向常整数的常指针(也就是说整数和指针都不可一修改)

2. 一些容易混淆的定义

一个整型数 int a

一个指向整型数的指针 int *a

一个指向指针的指针,他指向的指针是一个整型数 int **a

一个有十个整型数的数组 int a[10]

一个有十个指针的数组,该指针是一个指向整型数的 int *a[10]

一个指向十个整型数数组的指针 int (*a)[10]

一个指向函数的指针,该函数有一个整型参数并返回一个整型数 int (*a)(int)

一个有十个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型 int (*a[10])(int)

3. 关键字static的作用

在函数体内,一个被申明为static的变量在该函数被调用过程中保持其值不变

在模块内(函数体外),一个被申明为static的变量可以被模块内的函数访问,但不能被模块外的函数访问。他是一个本地的全局变量。

在模块内,一个被申明为static的函数只可以被被这一模块内的函数调用。就是说这个函数被限制在这个模块内部本地使用。

4.一个常用的位操作

给一个整型数a,写两段代码,第一个设置a的bit 3,另一个清除a的bit 3

#define BIT3 (0x1<<3)

static int a;

void set_bit3(void ){

a |= BIT3;

}

void clear_bit3(void){

a &= ~BIT3;

}

5.修改内存某处的值

要求设置一内存绝对地址为0x67a9的值为0xaa66

注:将一整型数强制转换为指针是合法的!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多