来自 中国大学 MOCC 浙江大学 翁凯老师的C语言课
&符号
通过&运算符可以获取到变量的内存地址,操作数必须为变量,它的大小取决于操作系统是几位,比如32位,4个字节 可以用sizeof() 验证
内存地址即是指针
关于数组的内存地址:
我们发现:
好像数组本身就是一种内存地址,记录的是数组中第一个元素的内存地址
而且内存里数组内元素之间的内存地址是挨着的
什么是指针呢?(感觉我说的应该不是很好)
指针是存放内存地址的类型变量,通常 int *p 我们可以声明一个变量名为p的指针,为啥是习惯是p,因为指针是point
问个问题,以下表达的一样吗?
int* p
int *p
答案:一样的,c中没有int* 这种类型, 这里其实表达的是*p是一个int
那再问个问题:
int*p ,q
我这样声明 q是什么类型的?
读值与写值
test(int *p){
int i=*p;//读取值
*p=1;//写值
}
指针数组数组
这里的 int a[] 是什么? 如果用sizeof()去调用获取到的是数组的长度吗?