一些数组笔记(C)
0.数组名是一个指针,存放数组首元素地址,所以使用scanf()接受字符串输入时只用写上数组名,不用加&。数组名是常量不允许修改其值。数组只能定义的时候初始化,后期初始化会被认为是修改数组名的值。
1.二维数组中 ->
求行数: int row = sizeof(a)/sizeof(a[0]);
求列数: int col = sizeof(a[0])/sizeof(a[0][0]);
求总体元素个数:
int num = (sizeof(a)/sizeof(a[0])) * (sizeof(a[0])/sizeof(a[0][0])) -> sizeof(a)/sizeof(a[0][0]);
2.C语言中没有字符串(string)这个类型的变量,所以都是用字符数组模拟字符串。字符串一定是字符数组,但字符数组不一定是字符串。每个字符串结尾都有结束符('\0')
eg:
char a[] = {'a','b','c'};//字符数组
char b[] = {'a','b',c','\0'};//字符串
3.printf()函数中,使用%s打印字符串时,会顺着首元素地址一个个往后打印,直到遇到结束符('\0'或'0'),如果没有结束符就会打印到其他内存上,会出现乱码现象。
4.结束符可以写为:0或'\0',但是,'0'的ascii码为48,是数字0。
5.scanf()接受字符串输入时不用加&。scanf()接受输入时遵循空格阶段原则,遇到空格就只保留空格前的内容。scanf()接收到输入内容后会在输入内容后面加一个'\0',所以不论字符串原来的内容是什么,在接受输入后在打印就会只打印输入内容。
eg:
char buf[25] = {"aaaaaaaaaaaaaa"};
scanf("%s",buf);//scanf接受输入不用加&
//假设现在输入hello,然后buf[]就会变成 ->
buf[25] = {"hello\0aaaaaaaa"};
//这个时候再打印buf[]就只会打印出'\0'前的内容
一些数组笔记(C)的更多相关文章
- objective-c数组笔记
数组与可变数组 2015年6月14日 1.数组 数组的初始化方式 1.初始化一个空数组 NSArray *array = [[NSArray alloc] init];//不可变数组,数组内不可以添加 ...
- Object -C 数组 -- 笔记
// // main.m // Array // // Created by facial on 23/8/15. // Copyright (c) 2015 facial_huo. All ...
- Javascript进阶篇——(数组)笔记整理
什么是数组数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数值. <script type="text/javascript"& ...
- Java数组笔记
# 数组--------内存 # 2017/8/31 15:29:19 ## 数组(容器) ## - 为了存储同种数据类型的多个值 - 概念 - 数组是可以存储同一种数据类型多个元素的集合, ...
- 05 方法与数组笔记【JAVA】
---恢复内容开始--- 1:方法(掌握) (1)方法:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类 ...
- C++ 指针二维数组, C++二维指针数组笔记
C++ 二维动态数组 一. 已知第一维 #include <iostream> using namespace std; int main(int argc, char const *ar ...
- java动态数组笔记
动态数组: 在java.lang.reflect包下提供了Array类,包括一系列static方法,通过这些方法可动态的创建数组.给元素赋值.取出元素值等等 //理解数组引用——下面定义的objs数组 ...
- javascript数组笔记
1.数组 2.利用new创建数组 var arr= new Array(); 3.利用数组字面量创建数组 var 数组名=[]; 4.数组里面的数据叫 5.数组的索引(数组下标从0开始) 6.遍历数组 ...
- Java编程基础阶段笔记 day06 二维数组
二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...
随机推荐
- 优秀的Spring Cloud开源项目整理推荐
无论是对于初学者,还是有一定工作经验的程序员来讲,Spring Cloud开源项目都是一笔宝贵的财富.下面给大家整理了十个优秀的开源项目,分别是spring-cloud-examples.spaasc ...
- 手把手教你如何用MSF进行后渗透测试!
在对目标进行渗透测试的时候,通常情况下,我们首先获得的是一台web服务器的webshell或者反弹shell,如果权限比较低,则需要进行权限提升:后续需要对系统进行全面的分析,搞清楚系统的用途:如果目 ...
- echarts优化数据视图dataView中的样式
在使用echart过程中,toolbox里有个dataView视图模式,里面的数据没有对整,影响展示效果,情形如下:改问题解决方案为,在optionTocontent回调函数中处理,具体代码如下: t ...
- HTML常用表单标签
1.表单元素 <form> HTML 表单用于收集用户输入. 代码示例: <form action="http://xxx.xxx.xxx/xxx.php" me ...
- 一块小饼干(Cookie)的故事-下篇
上篇介绍了注册的基本流程,下篇简单的讲讲登录的流程以及Cookie的出现 实现登录的小功能 当你在浏览器的输入框里输入localhost:8080/sign_in的时候,会发起GET请求,去访问sig ...
- Go module学习笔记
一 go module 常用命令 模块维护:go mod command arguments创建模块:go mod init example.com/hello清除无用依赖: go mod tidy ...
- 迄今为止最硬核的「Java8时间系统」设计原理与使用方法
为了使本篇文章更容易让读者读懂,我特意写了上一篇<任何人都需要知道的「世界时间系统」构成原理,尤其开发人员>的科普文章.本文才是重点,绝对要读,走起! Java平台时间系统的设计方案 几乎 ...
- 通过mockjs来制作假数据
需用用到的模块为express和mockjs //导入模块开启服务器模块 const express=require('express') //导入假数据模块 const mockjs=require ...
- 027.掌握Service-Ingress使用
一 Ingress简介 1.1 Ingress 通常Service的表现形式为IP:Port,即工作在TCP/IP层. 对于基于HTTP的服务来说,不同的URL地址经常对应到不同的后端服务(RS)或者 ...
- nes 红白机模拟器 第5篇 全屏显示
先看一下效果图 放大的原理是使用最初级的算法,直接取对应像素法. /*================================================================= ...