C语言回顾-二维数组
1.二维数组:是一个特殊的一维数组
完全初始化:
1)int a[2][3]={{1,2,3},{2,3,4}};
2)连续赋值int a[2][3]={1,2,3,2,3,4};
3)可以省略第一维的长度,第二维不能省
int a[][3]={1,2,3,2,3,4};
部分初始化
int a[2][3]={1,2,3};
先定义后初始化
2.二维数组的遍历
两重循环
3.二维数组的存储,先行后列,连续存储
二维数组的首地址=数组名=&a[0]=&a[0][0]
通过数组名计算数组占用的总字节数sizeof(a);
每行的字节数sizeof(a[0]);
每行有多少列:上面的数/每个元素占用的字节数
行数:sizeof(a)/sizeof(a[0])
4.字符串(双引号引起来,以\0结束)
用字符数组来保存字符串
1)char str[4]={"Hello"};
2)char str[4]="Hello";
3)char str[]="Hello";
字符串输出
print("%s",str);//str是字符串的首地址
print("%s",&str[0]);//%s从给定的地址开始打印,直到\0结束
%s输入的话,如果字符串有空格,则空格之后的字符无法被接收保存
计算字符串的长度:
1)使用strlen(str);函数
2)遍历数组,遇到\0结束循环,返回个数
字符串处理函数
1)输入输出函数,包含stdio.h
puts输出一个字符串,puts(字符数组首地址);
gets输入一个字符串,gets(字符数组名)使用gets会给出一个警告,存在越界问题。可以接收空格,但不可以格式话输出。
2)字符串连接函数,包含string.h
strcat(oldstr,newstr);//把newstr连接到oldstr后面,oldstr要足够大
strcpy(oldstr,newstr);//用newstr覆盖oldstr,oldstr要足够大
strcmp(str1, str2);//比较str1和str的大小,str1>str2返回大于0
strlen(str1);//计算字符串的长度
C语言回顾-二维数组的更多相关文章
- C语言之二维数组
二维数组 还是一个数组,只不过数组中得每一个元素又是一个数组 1). 声明语法 类型 数组名[行][列]; 例: int nums[2][3];//2行3列的二维数组,保存的数据类型是int类型 c ...
- C语言 字符二维数组(多个字符串)探讨 求解
什么是二维字符数组? 二维字符数组中为什么定义字符串是一行一个? “hello world”在C语言中代表什么? 为什么只能在定义时才能写成char a[10]="jvssj" ...
- C语言中将二维数组作为函数参数来传递
c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. 例如: #include <stdio.h> void func(int n, char ...
- C语言教学--二维数组和指针的理解
对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...
- C语言基础--二维数组
二维数组概念: 数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组,二维数组是特殊的一维数组. 二维数组格式: 元素类型 数组名称[一维数组的个数][每个一维数组的元素个数]; 元素类型 ...
- 【C语言】二维数组做形参
二维数组有两种形式: ①在栈上: int a[4][4] = {...}; ②在堆堆上: int ** a = new int *[4]; for ...
- 【学习笔记】【C语言】二维数组
1. 什么是二维数组 一个数组能表示一个班人的年龄,如果想表示很多班呢? 什么是二维数组?int ages[3][10]; 三个班,每个班10个人 相当于3行10列 相当于装着3个一维数组 二维数组是 ...
- iOS,object-c传参c语言的二维数组
有那么一瞬间,懒得用NSArray,NSNumber,NSValue等一大堆蛋疼的转换,所以就定义了一个C的二维数组,反正OC支持C混编,可是蛋疼往往是传递的,这里不疼了,哪里就要疼,想把一个c的二维 ...
- C语言 memcpy二维数组的复制
今天在实现二维数组的复制功能时,竟然出现了好多问题,还是太不小心了. 我们知道,平时进行矩阵复制,无非是二重循环进行赋值操作,所以今天想改用利用memcpy进行复制操作,当然一维数组的复制在上一篇文章 ...
随机推荐
- ubuntu12.04下root启动wireshark报错解决办法
在ubuntu11.10以后版本中发现,安装wireshark后用root权限启动,弹出如下错误: Running as user “root” and group “root”. This coul ...
- Linux 下 JAVA 安装及配置
1. 要 安装JDK7,当然是要有JDK的二进制文件拉..这个简单,直接在ORACLE的官网中下载就可以拉 http://www.oracle.com/technetwork/java/javase/ ...
- SQLite的原子提交原理
本文描述了sqlite为保证数据库文件不被损坏而采取的种种手段.. 以下是原译者的摘要:http://www.kuqin.com/shuoit/20150618/346693.html 摘要: 本文源 ...
- poj1323-Game Prediction(贪心思想)
贪心的思想:尽量的从最大值找起.然后在剩余之中,再从最大值找起. 一,题意: M个人,每人N张牌,每轮比较谁出的牌大,最大者为胜.现在给定M和N,以及你的牌,要求输出你至少能确保获得几轮的胜利 从&q ...
- ajax 通用方法,从thinkphp中拔出来的
<?php /** * 设置页面输出的CONTENT_TYPE和编码 * @access public * @param string $type content_type 类型对应的扩展名 * ...
- SqlServer 笔记二 获取汉字的拼音首字母
一.该函数传入字符串,返回数据为:如果为汉字字符,返回该字符的首字母,如果为非汉字字符,则返回本身. 二.用到的知识点:汉字对应的UNICODE值,汉字的排序规则. 三.数据库函数: )) ) AS ...
- Ionic + AngularJS
Ionic Framework Ionic framework is the youngest in our top 5 stack, as the alpha was released in lat ...
- xhtml文档
1.定义正文标题 (h1,h2,h3,h4,h5,h6) h1是最重要的标题,也是最大的.h6是最不重要的,也是最小的. <h1>我的世界<1> 2.定义一个段落 用<p ...
- python批量进行文件修改操作
python批量修改文件扩展名 在网上下载了一些文件,因为某种原因,扩展名多了一个后缀'.xxx',手动修改的话因为文件太多,改起来费时费力,于是决定写个小脚本进行修改. 1.要点: import r ...
- scala中的数组的转换操作
1.共有两种操作 转换成一种新的数组 2.yield转换 3.函数式编程转换