黑马程序员——C语言基础 char字符 数组
Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
(以下内容是对黑马苹果入学视频的个人知识点总结)
(一)char类型
1)存储细节
ASCII单字节表(双字节GBK\GB2312\GB18030\Unicode)
2)可以当整数使用
在-128~127范围内,可以当做整数来用
3)常见的错误
①char c = A;
②char c = "A";
③char c = 'ABCD';
④char c = '男';
#include <stdio.h>
/*
1.说出下面程序的输出结构
int i = 67 + '4';
char c = 'c' - 10; printf("%d - %c\n", i, i);
printf("%d - %c\n", c, c); 2.写一个函数,将小写字母转为大写 */ char upper(char c)
{
// 如果是小写字母,就转成大写
/*
if (c>='a' && c<='z') { // ['a', 'z']
return c - ('a'-'A');
} else {// 如果不是小写字母,返回字母本身
return c;
}*/ // 如果是小写字母,就转成大写
if (c>='a' && c<='z') { // ['a', 'z']
return c - ('a'-'A');
}
// 如果不是小写字母,返回字母本身
return c;
} int main()
{
char cc = upper('f'); printf("%c\n", cc);
return ;
}
4)转义字符
①\n 将当前位置移到下一行开头(回车换行)
②\t 跳到下一个TAB位置
③\\ 代表一个反斜线字符
④\" 代表一个双引号字符
⑤\0 代表空字符
(二)数组
1)数组的基本概念
1>数组,从字面上看,就是一组数据的意思,数组就是用来存储一组数据的
2>只能存放一种类型的数据,比如int类型的数组、float类型的数组,里面存放的数据称为“元素”
2)数组的定义
1>声明数组的类型
2>声明数组的元素个数
3>格式
元素类型 数组名[元素个数];
比如:int ages[3];
4>简单的使用和初始化
数组可以存放数据,可以作为函数参数,数组元素也可以作为函数参数
数组有多种初始化方式
①int ages[5] = {10 , 11, 12, 67, 56};
②int ages[5] = {10, 11};
③int ages[5] = {[3] = 10, [4] = 11};
④int ages[] = {10, 11, 14};当然只能在定义数组的同时进行初始化
#include <stdio.h> // 数组作为函数参数,可以省略元素个数
// 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组 void change(int array[])
{
//printf("array==%p\n", array); array[] = ;
} void change2(int n)
{
n = ;
} int main()
{
int ages[] = {, , , , , }; //printf("ages==%p\n", ages); change(ages); //change2(ages[0]); printf("%d\n", ages[]);
return ;
}
5>内存分析
数组内的存储空间大小和数组的类型以及存放的数据个数有关。内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的。
二维数组和数组的内存都一样,一下是一个二维数组的存储形式

/* 设计一个函数,找出整型数组元素的最大值
*/ #include <stdio.h> int maxOfArray(int array[], int length)
{
// 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节 //int size = sizeof(array);
//printf("array=%d\n", size); //sizeof(array); // 1.定义一个变量存储最大值(默认就是首元素)
int max = array[]; // 2.遍历所有元素,找出最大值
for (int i = ; i<length; i++)
{
// 如果当前元素大于max,就用当前元素覆盖max
if (array[i] > max)
{
max = array[i];
}
} return max;
} int main()
{
int ages[] = {, , , , , , , , }; int ages2[] = {, , , , , , , , }; //int size = sizeof(ages); //printf("ages=%d\n", size);
int max = maxOfArray(ages, sizeof(ages)/sizeof(int)); printf("%d\n", max);
return ;
}
上面的程序是一个数组的遍历以及找出最大值
黑马程序员——C语言基础 char字符 数组的更多相关文章
- 黑马程序员—C语言的函数、数组、字符串
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.函数 定义:函数是代码复用的一种机制. 函数的基本语法: 返回类型 函数名 ( 参数类型 参 ...
- 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...
- 黑马程序员——C语言基础 指针
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)指针 首先指针是C语言中非常重要的数据类型,如果你说C语言中除了指针 ...
- 黑马程序员——C语言基础 字符串
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)字符串 1>字符串是由多个字符组合在一起形成的 2>初始 ...
- 黑马程序员——C语言基础 枚举 宏定义 自定义 static exterm
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)枚举 1)枚举类型的定义 枚举是C语言中的一种基本数据类型,并不是构 ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- 黑马程序员——C语言基础 scanf函数 基本运算 三目运算符
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)scanf函数 1> 简单介绍一下scanf函数 这是在 ...
- 黑马程序员——C语言基础 函数
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...
- 黑马程序员——C语言基础 变量类型 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...
随机推荐
- [Linux]cmd to use
0x01 Linux Perfermance Analysis in 60s 1> uptime ---load averages 2> dmesg -r | tail ---kernel ...
- GCC for Win32开发环境介绍
http://blog.csdn.net/VisionCat/article/details/711693 http://blog.csdn.net/VisionCat/article/categor ...
- Gvim常用命令
这是一篇较全的vim命令.特记录下来,有稍作修改说明.摘http://hi.baidu.com/ui176/item/b00ae7c0eeaba52847d5c0c5 Vim常用命令 跳到指定的行号: ...
- Security » Authorization » 基于资源的授权
Resource Based Authorization¶ 基于资源的授权 68 of 73 people found this helpful Often authorization depends ...
- node.js的优缺点
node.js的优缺点 优点: 1. 采用事件驱动,异步编程,为网络服务而设计. 2. node.js非阻塞模式的IO处理给node.js带来在相对较低的资源耗用下的高性能与出众的负载能力. 3. n ...
- LR录制Flex+Web,登录功能之登录密码出错的处理
在LR中录制好更改密码脚本,Controller中使用少量用户进行:单用户多迭代.多用户单迭代.多用户多迭代,运行正常,于是使用490Vuser+2iteration修改980个用户的密码,部分 Vu ...
- 通过OCCI连接oracle(C++)
OCCI介绍 OCCI:Oracle C++调用接口(OCCI),即Oracle的C++API,允许你使用面向对象的特性.本地类.C++语言的方法来访问Oracle数据库. OCCI优势 基于标准C+ ...
- C指针的大小
应该说这是一个非常基础的问题,教科书上说指针大小和机器字长相同,即32位机指针长度为4字节!但是对不对呢?为什么是这样? 搜了一下相关资料...居然发现回答不统一,很多人也同样是糊里糊涂. 下面对这个 ...
- echarts图表第一个案例
1.action中获取到数据 @Override public String execute() throws Exception { List<Student> find = echar ...
- java List 排序
List<Map.Entry<String, String>> infoIds = new ArrayList<Map.Entry<String, String&g ...