您的位置:首页 > 其它

嵌入式软件开发培训笔记——C高级 指针

2015-04-16 12:19 555 查看
由计算机系统组成及内存地址介绍引题进入基础指针学习



a)指针变量定义
char *pname;  //编译器从右往左进行识别,pname存放的是另一对象的首地址,并且另一对象的数据类型必须为char型
指针变量初始化
int *p = 0x12345678;
b)指针变量赋值
int *p;
p = 0x12345678;
c)空针NULL
int *p = NULL;    //当前指针变量未指向任何一个有效变量的地址
d)&取地址符
int i;
char j;
int *p = &i;
int *q = (int *)(&j);    //强行指向char型变量
用强制类型转换
e)野指针



f)指针变量的+
-运算(+、-、++、--)
char *p;    //sizeof(char、int、long)=(1、4、8)
p++;        //p+sizeof(char)
p--;         //p-sizeof(char)
g)两指针相减的运算
int *p1 = 100;
int *p2 = 104;
(p2 - p1)      //(p2 - p1)/sizeof(int) = (104 - 100)/4 = 1

h)void型指针

void *i;         //i指针可指向任何类型的对象

但在后续程序中使用该指针前应先对其类型进行强制转换



补充:判断num大于0或小于0或都等于0;

Num > 0; return 1;

Num < 0; return -1;

Num == 0; return 0;

等价下面三目运算嵌套用法



补充:标准main函数,argc为参数个数含./exe,argv[]为指向参数的指针数组。

int main(int argc, char *argv[])  或  int
main(int argc, char **argv)
需接收整型数时可用atoi将argv[]指向的字符形参数转换成整形;

i)const限定符

const int *p1;             //限定P1所指向的对象值不可通过P1来修改

int * const p2 = &i;     //限定P2变量不能被改变

const int * const p3 = &j;   //限定P3变量且限定p3指向的对象值不可通过P3来修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c 指针
相关文章推荐