C语言程序设计进阶 第一周1.1笔记

来源:互联网 发布:淘宝店家加微信发红包 编辑:程序博客网 时间:2024/06/14 11:16

数组变量本身表达地址,所以:

数组变量是特殊的指针,inta[10]int*p=a;//无需用&取地址

但是数组的单元表达的是变量,需要用&取地址

a==&a[0]

[]运算符可以对数组做,也可以对指针做:

p[0]<==>a[0]

*运算符可以对指针做,也可以对数组做:

*a=25;

数组变量是const的指针,所以不能被赋值

b[ ] <==> int * const b

指针是const表示一旦得到了某个变量的地址,不能指向其他变量

int *const q=&i;//qconst

*q=;//OK

q++//error

所指是const表示不能通过这个指针去修改那个变量(并不能使得那个变量成为const

const int *p=&i;

*p=26;//错误,(*p)是const

i=26//正确

p=&i;//正确

判断哪个被const了的标志是const*的前面还是后面

如:

const int *p1=&i; <==> int const *p2=&i; <!=> int * const p3=&i; 

总是可以把一个非const的值转换成const的(当要传递的参数的类型比地址大的时候,可以这样使用:即能用比较少的字节数传递值给指针,又能避免函数对外面的变量的修改)

const数组表示每个单元都是const,只能通过初始化来定义。

0 0