一,二维数组的相关问题
来源:互联网 发布:滚动的天空矩阵浪潮 编辑:程序博客网 时间:2024/06/10 05:13
#define _CRT_SECURE_NO_WARNINGS 1//1.解析一维数组的创建和初始化 type_t arr_name [const_n]; //type_t是创建数组的类型,arr_name是数组名,[const_n]里是常量表达式,用来指定数组的大小; int arr[3] = { 1, 2, 3 };//创建一个大小为3个元素的整型数组; char arr[3] = "abc";//创建一个大小为3个元素的字符型数组; char arr[4] = { 'a', 'b', 'c','\0' }; float arr[3];//创建一个大小为3个元素的浮点型数组; double arr[3];//创建一个大小为3个元素的双精度浮点数组;//2.一维数组的使用#include <stdio.h>#include <stdlib.h> int main() { int arr[10] = { 0 };//数组的不完全初始化 //对数组内容赋值,数组是使用下标来访问的,下标从零开始 int i = 0;//做下标 //输出数组内容 for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) { printf("%d ", arr[i]); } system("pause"); return 0; }//3.一维数组的存储#include <stdio.h>#include <stdlib.h> int main() { int arr[10] = { 0 }; int i = 0; for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) { printf("&arr[%d]=%p\n", &arr[i]);//打印每个元素的地址 } system("pause"); return 0; }//数组在内存中是连续存放的 ![这里写图片描述](http://img.blog.csdn.net/20170719170022560?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR3VpanVuNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) //4.指针的定义int *ptr = NULL;//定义针变量,初始化为NULLchar *ptr = NULL;//定义一个字符一个整型的指的指针变量,初始化为NULLdouble *ptr = NULL;//定义一个双精度浮点数的指针变量,初始化为NULLint num = 10;int *p_num = #//将num的地址存放在p_num的指针变量中*p_num = 20;//改变的其实是num这个变量的内容 //一维数组指针的访问#include <stdio.h>#include <stdlib.h>int main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; printf("%p\n", arr); printf("%d\n", *arr); system("pause"); return 0;}//数组的数组名其实是首元素地址#include <stdio.h>#include <stdlib.h>int main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int i = 0; for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) { printf("&arr[%d]=%p\n", &arr[i]); printf("%p\n", arr + i); } system("pause"); return 0;}//通过数组名+整数的运算可以获取到数组每个元素的地址 //使用指针访问数组#include <stdio.h>#include <stdlib.h>int main(){ int arr[10] = { 1 }; int i = 0; int *p_arr = arr; for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) { *(p_arr + i) = i; } for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) { printf("%d ",*(p_arr+i)); } system("pause"); return 0;}//5.解析二维数组的创建和初始化//数组的创建int arr[3][4];//整型char arr[3][4];//字符型double arr[2][4];//双精度浮点型//数组初始化int arr[3][4] = { 1, 2, 3, 4 };int arr[3][4] = { { 1, 2 }, { 3, 4 } };int arr[][4] = { { 1, 2 }, { 3, 4 } };//6.二维数组的使用#include <stdio.h>#include <stdlib.h>int main(){ int arr[3][4] = { 0 }; int i = 0; for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 4; j++) { arr[i][j] = i * 4 + j; } } for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 4; j++) { printf("%d ", arr[i][j]); } printf("\n"); } system("pause"); return 0;}//7.二维数组的存储#include <stdio.h>#include <stdlib.h>int main(){ int arr[3][4]; int i = 0; for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 4; j++) { printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]); } } system("pause"); return 0;}//输出结果![这里写图片描述](http://img.blog.csdn.net/20170719165651181?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR3VpanVuNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)//8.二维数组的指针访问#include <stdio.h>#include <stdlib.h>int main(){ int arr[3][4] = { 1 }; int *p = &arr[0][0]; int i = 0; for (i = 0; i < 3 * 4; i++) { printf("%d ", *(p + i)); } printf("\n"); for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 4; j++) { printf("%d ", arr[i][j]); } } system("pause"); return 0;}//比较这两个输出结果![这里写图片描述](http://img.blog.csdn.net/20170719175648743?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR3VpanVuNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)//9.有关数组的运算//一维数组#include <stdio.h>#include <stdlib.h>int main(){ int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));//16 printf("%d\n", sizeof(a + 0));//4 printf("%d\n", sizeof(*a));//4 printf("%d\n", sizeof(a + 1));//4 printf("%d\n", sizeof(a[1]));//4 printf("%d\n", sizeof(&a));//4 printf("%d\n", sizeof(&a + 1))//4; printf("%d\n", sizeof(&a[0]));//4 printf("%d\n", sizeof(&a[0] + 1));//4 system("pause"); return 0;}//二维数组#include <stdio.h>#include <stdlib.h>int main(){ int a[3][4] = { 0 }; printf("%d\n", sizeof(a));//48 printf("%d\n", sizeof(&a));//4 printf("%d\n", sizeof(a[0][0]));//4 printf("%d\n", sizeof(a[0]));//16 printf("%d\n", sizeof(a[0] + 1));//4 printf("%d\n", sizeof(a + 1));//4 printf("%d\n", sizeof(&a[0] + 1));//4 printf("%d\n", sizeof(*a));//16 printf("%d\n", sizeof(a[3]));//16 system("pause"); return 0;}//总结//数组名代表整个数组的时候只有两种情况//sizeof(数组名),这里的数组名表示整个数组。//&数组名,这里的数组名表示整个数组。
阅读全文
0 0
- 一,二维数组的相关问题
- 关于二维数组和二维指针的相关问题
- 二维指针,二维数组,以及指向数组的指针的相关问题
- 二维指针,二维数组,以及指向数组的指针的相关问题
- 一维数组和二维数组的传值问题
- 二维数组的问题
- 指针的相关运算,包括一维数组、二维数组、字符数组的sizeof、strlen运算
- 一维数组、二维数组、字符数组、指针 相关的 sizeof 计算
- 初学php 二维数组相关问题
- java 一维和二维数组的拷贝问题
- 关于一维和二维数组名是指针的问题
- 一/二维数组与指向一/二维数组的指针
- 一维指针和二维指针指向二维数组的一些问题
- 二维数组的一些问题
- 二维数组的一些问题
- 指针 二维数组的问题
- 二维数组的地址问题
- 二维数组的指针问题
- 程序的编译的过程
- 7/12作业:接口
- You cannot start a load for a destroyed activity错误处理
- python、opencv以及第三方库的安装
- 数字化原理
- 一,二维数组的相关问题
- Android自定义属性实现显示两行文字的button
- fzu2271 X
- 40G QSFP+光模块知识汇总
- DOM操作以及其它案例总结
- 文件过滤器
- 分类模型的 Loss 为什么使用 cross entropy 而不是 classification error 或 squared error
- Java中数组去掉重复值一例
- Android Studio 中删除项目和项目找回------ Project Structure的使用