黑马程序员—C语言的函数、数组、字符串
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、函数
- 定义:函数是代码复用的一种机制.
- 函数的基本语法:
返回类型 函数名 ( 参数类型 参数名, ... ) {
语句;
return ...
}
3.函数的分类:
根据参数分可以分为 1.有参数函数,2.无参数函
根据返回值分可以分为 1.有返回值函数 2.无返回值函数
4.下面我举一个简单的有参数有返回值函数的例子:
#include <stdio.h>
int getSum(int num1, int num2) { //num1,num2就是getSum函数的参数,这个函数返回的是一个int类型的
int res = num1 + num2;
return res; // 利用 return 语句返回 res 的结果
}
int main(int argc, const char * argv[]) {
int n = 10;
int m = ;
int res = getSum(n, m);
printf("%d\n", res);
return ;
}
二、数组
- 定义:一个数组就是多个变量的有序集合,
1、定义一个数组,就定义了很多的变量
2、这每一个变量都是数组的一个元素或成员
3、数组是一个有序的集合,也就是说可以使用一个数字引用变量
4、数组中每一个元素的使用和一个一般的变量使用一样 - 一维数组:一维数组是元素都不是数组的数组。
语法:
数据类型 数组名[ 数组长度 ];
数组的初始化:1、完全初始化
int nums[5] = { 1, 2, 3, 4, 5 };2、不完全初始化,没有提供数据的默认初始化为 0
int nums[10] = { 1, 2, 3, 4, 5 };3、省略数组长度,由编译器自动判断
int nums[] = { 1, 2, 3, 4, 5 };- 实用for循环遍历数组:
#include <stdio.h>
int main(int argc, const char * argv[]) { int array[] = { , , , , , , };//定义一个数组并初始化 for (int i = ; i < ; i++) {//使用for循环来遍历这个数组
printf("%d\n", array[i]);//打印第i个元素
} return ;
}
三、字符串
- 定义:
字符串就是使用双一号括起来的内容
例如:
"张三"
"Hello World" - 字符串与数组的关系:
C 语言中没有描述字符串的数据类型
OC 中有 NSString
C# 中有 string
Java 中有 String在 C 语言中使用一个以 '\0' 结尾的字符数组来描述字符串
- 、字符串的初始化:
字符串的初始化方式
char chs[] = "Hi"; // 默认自动添加 '\0'
- 在输入字符串的时候有scanf 和gets函数,下面我给大家来结合以上的函数知识点来自定义个getstring函数来输入字符串
#include <stdio.h> void getString(char str[], int length) {
int i = ; while () { if (i == length - ) {
str[i] = '\0';
while(getchar() != '\n') ; // 清空缓存的数据
break;
} char c = getchar(); // 从缓存中获取一个字符, 注意缓存中也许还有很多字符 if (c == '\n') {
str[i] = '\0';
break;
} // 不为输入结束
str[i] = c; i++;
}
} int main(int argc, const char * argv[]) { char str[]; getString(str, );//调用这个自定义函数 printf("%s\n", str); return ;
}
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
黑马程序员网址:http://www.itheima.com
黑马程序员—C语言的函数、数组、字符串的更多相关文章
- 黑马程序员——C语言基础 函数
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...
- 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...
- 黑马程序员——C语言基础 枚举 宏定义 自定义 static exterm
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)枚举 1)枚举类型的定义 枚举是C语言中的一种基本数据类型,并不是构 ...
- 黑马程序员——JAVA基础之函数,重载,内存结构
------- android培训.java培训.期待与您交流! ---------- 函数: 什么是函数? • 函数就是定义在类中的具有特定功能的一段独立小程序. • 函数也称为方法. 函数的格 ...
- 黑马程序员——C语言基础 char字符 数组
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)char类型 1)存储细节 ASCII单字节表(双字节GBK\GB2 ...
- 黑马程序员——C语言基础 scanf函数 基本运算 三目运算符
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)scanf函数 1> 简单介绍一下scanf函数 这是在 ...
- 黑马程序员-- C语言交换两个整数变量值几种函数比较
总结了C语言中几种交换两个整数数值的函数,欢迎交流 #include <stdio.h> 使用多种交换变量值的函数比较 方法一:使用第三方临时变量 这种函数a,b只是值传递,实质上不能修交 ...
- 黑马程序员——C语言基础 指针
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)指针 首先指针是C语言中非常重要的数据类型,如果你说C语言中除了指针 ...
- 黑马程序员——C语言基础 变量类型 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...
随机推荐
- Introduction to Glide, Image Loader Library for Android, recommended by Google
In the passed Google Developer Summit Thailand, Google introduced us an Image Loader Library for And ...
- [Locked] Sparse Matrix Multiplication
Given two sparse matrices A and B, return the result of AB. You may assume that A's column number is ...
- 蘑菇街 App 的组件化之路
在组件化之前,蘑菇街 App 的代码都是在一个工程里开发的,在人比较少,业务发展不是很快的时候,这样是比较合适的,能一定程度地保证开发效率. 慢慢地代码量多了起来,开发人员也多了起来,业务发展也快了起 ...
- 协议系列之HTTP协议
什么是HTTP\HTTPS HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.HTTP协议用于从WWWserver传输超文本到本地浏览器的传输协议,它能使浏览 ...
- Shiro Quartz之Junit測试Session管理
Shiro的quartz主要API上提供了org.apache.shiro.session.mgt.quartz下session管理的两个类:QuartzSessionValidationJob和Qu ...
- SAP OTR 字段维护 更改SAP的字段翻译
维护系统文本字段:SOTR_EDIT TC:SE63 在SAP用户选择屏幕中,用鼠标选定一个栏位后按F1键,能够看到SAP对其详细解释,通常这样的解释文本分为两部分,一部分为标题, ...
- discuz! X3.2 自定义后台门户模块模板里的标签
这里只提供对源码的修改, 至于插件, 暂不考虑... 想在首页里展示一些自定义字段的内容, 奈何dz无此功能, 无奈去扒源码. 首先切到 source 文件夹下 1. 在 class/block/po ...
- Android系统移植与驱动开发----第一章
第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...
- Linux编程之定制带级别的log
我的开发组长曾经说过这么一段话"一个优秀的程序员不在于他写代码有多快,也不在于他能不能实现这个模块的功能,要实现业务实现功能谁不会啊,重要的是他的解决能力,也就说当程序出现错误时你能不能够快 ...
- 【开源java游戏框架libgdx专题】-05-模块描述与上下文
模块描述(Modules overview) Input:为所有的平台提供一个统一的输入模型和处理程序. 获取触摸示例: if (Gdx.input.isTouched()) { System.out ...