![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
指针和数组
c语言的指针和数组学习笔记~
ni_darling
这个作者很懒,什么都没留下…
展开
-
5 变长数组
变长数组(VLA): double sales[regions][quarters]; 一:限制: 1 变长数组必须是自动存储类别,这意味着无论在函数声明还是作为函数形参声明,都不可以使用 statis和extern存储类别 2 不能在声明中初始化它们 3 变长数组不能改变大小 注意:变长数组的“变”不是可以改变数组的大小,一旦创建了变长数组,它的大小则保持不变,这里的“变”是指:在创建数组时,可以使用变量指定数组维度。 二:声明: int sum2d(int rows, int cols, int ar原创 2020-09-01 00:14:28 · 585 阅读 · 0 评论 -
4.复合字面量
复合自变量类似于数组初始化列表,前面是用括号括起来的类型名 int arr[2] = {1, 2} 用复合自变量表示方法如下 (int [2]) {1, 2} //复合自变量 有两个int类型值的匿名数组 这里int[2] 是复合自变量的类型,初始化有数组名的数组可以省略数组大小,复合自变量也可以省略大小, int a[2] = {1, 2} <==> int a[] = {1, 2} (int [2]){1, 2} <==> (int []){1, 2} 复合字面量是匿名的,所.原创 2020-07-02 16:51:59 · 3609 阅读 · 2 评论 -
2.const在指针中的一些用法
指针赋值和const的一些规则 const数据和非const数据的地址赋值给const指针是合法的, 但是把const数据的地址赋值给普通指针是不安全的,可以简单定义为非法,结果是不可以预料的 具体看下面这个列子,其中注释部分尤为重要! #include <stdio.h> #define MONTHS 12 void show_array(const double a[], int n) { int i; for(i = 0; i < n; i++)原创 2020-06-22 22:41:23 · 121 阅读 · 0 评论 -
1.数组名 地址 指针
数组名是数组首个元素的地址 如果buf是一个数组,有以下语句成立: buf = &buf[0] //数组名是该数组首个元素的地址 在c语言中,指针+1表示增加一个存储单元,对于数组而言,地址+1后表示指向下一个元素的地址,这也是为什么声明指针需要有类型的原因之一,只知道地址是不够的,计算机要知道存储对象需要多少字节,也就是指针指向的变量,也要知道变量的类型。 #include <stdio.h> #include <unistd.h> #define SIZE ..原创 2020-06-22 22:40:16 · 203 阅读 · 0 评论 -
3.指针与多维数组
以如下列子作为分析 #include <stdio.h> int main() { int zippo[4][2] = {1, 2, 3, 4, 5, 6, 7, 8}; printf("zippo = %p\n", zippo); printf("zippo + 1 = %p\n", zippo + 1); printf("&zippo[0] = %p\n", &zippo[0]); printf("&zippo[0] + 1 = %p\n", &原创 2020-06-22 22:37:35 · 126 阅读 · 0 评论