c语言中int(*t) n,C语言基础知识(下)
函数
相当于功能模块,通过调用函数,能直接实现函数的功能
函数定义: 返回值类型 函数名(参数){
函数体
}
作用: 避免写大量的重复代码
能够使代码更加精简
四种形式:
无参无返回值
void name ();
无参有返回值
int name ();
有参无返回值
int name (int a,int b);
有参有返回值
返回值类型: 无返回值类型,写成 void
C语言中不能返回数组
如果有返回值,必须使用return返回
函数名: 命名规范和变量名一样,与返回值类型用空格隔开
参数: 放在与函数名紧挨着的括号内,括号内可以有多个参数,每个参数都要指定数据类型,不管数据类型是否相同
return: 返回指定的数据类型,由函数的返回值类型决定什么类型的数据
碰到return,函数执行结束,return后面的代码不再执行
// 不能在函数里面调用函数
函数调用: 当函数定义在调用处的下面时,需要函数声明(函数声明:将函数的大括号变成分号,放在调用处所在函数的上面 void printfHelloWorld();)
函数定义在调用处所在函数的上面时,不需要函数声明
* 1. 建文件 点击你想放的位置->Command+N->OS X->Source->C file
* 2. 在.h 里面声明一个函数, .c 实现这个函数
* 3. 该文件内导入该文件的头文件,也就是.h文件
* 4. 直接调用函数就行
函数的嵌套调用
/*
* s = (2*2)! + (3*3)! +(4*4)!
* 1、整型数的平方
* 2、一个整型数的阶乘
* 3、三个整形的平方的阶乘的和
*/
#includeint method2(int a)
{
int sum = 1; // 用sum获取到a的阶乘
for (int i = 1; i<=a; i++)
{
sum *= i;
}
return sum;
}
int method1(int n){
int sum = 0; //sum接受最终的结果
for (int i = 2; i<=n; i++)
{
// sum +=i*i; (用一个函数计算阶乘)
sum += method2(i*i); //通过method2获取到i值平方的阶乘,再通过sum累加i值平方的阶乘
}
return sum;
}
int main(){
int sum = method1(4);
printf("%d\n",sum);
}
递归函数
/*
本质:自己调用自己
5! (jiecheng(5))
5*4! (5*jiecheng(4))
4*3! (4*jiecheng(3))
3*2! (3*jiecheng(2))
2*1! (2*jiecheng(1))
#includeint jiecheng (int n){
if (n == 1)
{
return 1;
}
return n*jiecheng(n-1);
}
int main (){
printf("n的阶乘=%d\n",jiecheng(5));
}
结构体概念
结构体:也相当于一个容器,与数组的本质区别在于,数组只能存放一种数据类型,而结构体能够存放多种数据类型
结构体能够直接复制,可以通过结构体的这种特性,让数组直接赋值
利用结构体可以创造多种数据类型
结构体的声明
格式:struct 结构体名
{
属性类型 属性名1;
属性类型 属性名2;
...
属性类型 属性名n;
};
定义结构体变量
结构体名字 结构体变量 = 初值;
修改结构体变量的内容,通过给结构体变量.相应的属性来赋值或者取值
定义过的结构体变量,不能再通过大括号来赋值
结构体的优化
typedef 能够给数据类型重命名
格式:typedef type name
type:原数据类型的名字
name:重新给原数据类型设置的名字
结构体嵌套
typedef struct Brithday{ //创建一个学生体并重命名
int year;
int month;
int day;
}Brithday;
typedef struct Student{ //创建一个学生体并重命名
char name[20];
Brithday brithday; //结构体的嵌套,也可以不嵌套,用结构体Brithday的内容替换
}Student;
int main (){
Student pangrenmeng = {"pang",{1993,03,16}};
int month = pangrenmeng.brithday.month;
指针概念
1.计算机在内存中存放数据,首先需要为数据找到一块地址
2.每块地址都有一个编号,通过编号找到这块地址
3.地址的编号其实就是指针
4.指针指向的就是计算机磁盘内的一块地址
5.指针变量:就是用来存储地址的
格式:
数据类型 *变量名 = 赋初值;
'*'就是一个标志符:用来表明这个变量是指针变量
数据类型:用来指示变量所指向的地址,存放什么样的数据
赋初值:因为定义的是指针变量,所以赋初值时要给一个地址
'&'取地址符
格式:
&变量名
在变量名前加一个&,就代表取到了该变量所在的地址
取值运算符
取值格式:
*指针变量
在变量的前面一个*代表取出来改地址的值
使用指针来交换两个变量的值
int i = 3;
int e = 7;
int * r = &i;
int * t = &e;
int temp = 0;
temp = *r;
*r = *t;
*t = temp;
printf("i = %d\ne = %d\n",*r,*t);
int y = 7;
int x = 9;
int * s= &y;
int * z= &x;
int temp1 = 0;
temp1 = *s;
*s = *z;
*z = temp1;
printf("y = %d\nx = %d\n",*s,*z);
指针与数组
数组: 定义一个数组,系统会分配一块连续的内存空间,数组名就是该数组里面第一个元素的地址
数组名就是一块地址
char *strings[3] = {"iPhone" , "Android" ,"win8"};
printf("%c\n%s\n%s\n",*(strings[1]+1),*(strings+1),*(strings+2));
指针与字符
char string[] = "awfr2";
char test = *(string+1);
*string = test;
*(string+1) = 'q';
*(string+4) = 'q';
printf("%s\n",string);
结构体指针
// 定义一个英雄结构体
typedef struct Hero
{
char name[10];
int blood;
char sex;
}Hero;
int main() {
Hero gailun = {"gailun",350,'m'}; //定义一个Hero类型的指针
Hero *p = &gailun; //读取Hero类型指针里面的数据
printf("%s的一级血量是%d\n",(*p).name,(*p).blood);
Hero datou ={"datou",300,'m'};
Hero *p1 = &datou;
printf("%s的一级血量是%d\n",(*p1).name,(*p1).blood);
结构体数组
int main(){
Hero gailun = {"gailun",350,'m'};
Hero aixi = {"aixi",300,'w'};
Hero ruizi = {"ruizi",500,'m'};
// 定义一个结构体数组
// 数组名代表的是数组的第一个元素的地址
Hero list[] = {gailun,aixi,ruizi};
//定义一个结构体指针,用来存放地址
Hero *hero = list;
printf("%s的血量%d\n",(*hero).name,(*hero).blood);
printf("%s的血量%d\n",(*(hero+1)).name,(*(hero+1)).blood);
printf("%s的血量%d\n",(*(hero+2)).name,(*(hero+2)).blood);
指针的指针
int main(){
//定义变量a 系统给地址
int a = 6;
//定义一个指针变量,系统还会给地址
int *p = &a;
//定义一个指针变量,来存储变量p的地址
int **pp = &p;
//通过双星找到指针的指针里面的值
printf("a=%d\n",**pp);
c语言中int(*t) n,C语言基础知识(下)相关推荐
- C语言程序设计做题笔记之C语言基础知识(下)
C 语言是一种功能强大.简洁的计算机语言,通过它可以编写程序,指挥计算机完成指定的任务.我们可以利用C语言创建程序(即一组指令),并让计算机依指令行 事.并且C是相当灵活的,用于执行计算机程序能完成的 ...
- c语言int作用,c语言中int的用法
C/C++编程语言中,int表示整型变量,是一种数据类型,下面学习啦小编就跟你们详细介绍下c语言中int的用法,希望对你们有用. c语言中int的用法:整型int C 语言提供了很多整数类型(整型), ...
- c语言int作用,c语言中int的用法有哪些
c语言中int的用法有哪些 C/C++编程语言中,int表示整型变量,是一种数据类型,用于定义一个整型变量,在不同编译环境有不同的大小,不同编译运行环境大小不同下面小编给大家整理了c语言中int的用法 ...
- c语言int2字节负数类型范围,c语言中int范围是多少?
C语言中int的取值范围是:"-2147483648 ~ 2147483647".int类型在C语言中占4个字节,即32个二进制位:当表示正数时,最高位为符号位(0):当表示负数时 ...
- c语言int的取值范围源程序,C语言中int的取值范围是多少
C语言中int的取值范围是多少 发布时间:2020-07-03 11:35:02 来源:亿速云 阅读:104 作者:Leah C语言中int的取值范围是多少?针对这个问题,这篇文章详细介绍了相对应的分 ...
- int在c语言中的作用,C语言中int,Uint,uint16等有什么区别以及用处
C语言中int,Uint,uint16等有什么区别以及用处.在C中,既然有了int,为什么还要有uint?特别是uint16,uint32等又有什么用?他们有什么区别?" --------- ...
- c语言double类型是几字节,c语言中int long float double 等类型所占字节及输出表示(转)...
16位编译器 char :1个字节 char*(即指针变量): 2个字节 short int : 2个字节 int: 2个字节 unsigned int : 2个字节 float: 4个字节 doub ...
- c语言数据类型 占字节最少,C语言中int型是所占字节最短的数据类型。
C语言中int型是所占字节最短的数据类型. 更多相关问题 [单选,A1型题] 满而不痛者,此为痞,载于() [单选,A4型题,A3/A4型题] 钱某,男,16岁,近日因饮酒饱食后出现胃脘胀满疼痛,嗳腐 ...
- c语言int16位数据范围,c语言中int取值范围为16位指的是什么16位
1.c语言中int取值范围为16位指的是什么16位 计算机用二进制表示数值,最小单位就是位(bit),可以储存0或1,16位就是有16个储存0或1的位,其中左边第一位是符号位,0代表+ .1代表-. ...
最新文章
- C#里面Console.Write与Console.WriteLine有什么区别????
- 在pcduino上实现图像识别的程序
- VTK修炼之道37:图像平滑_高斯滤波器
- POST方式发起下载请求
- [转]ASP.Net篇之Session与Cookie
- Shodan新手入坑指南
- 【算法】数组与矩阵问题——找到无序数组中最小的k个数
- configure 查找依赖库_由浅入深:Python 中如何实现自动导入缺失的库?
- 使用php-amqplib连接rabbitMQ 学习笔记及总结
- 软件外包相关职业规划
- C++异常处理:try,catch,throw,finally的用法
- access计算机二级改工号,Access新手来看:如何更改表/窗体/报表...得名字
- Tomcat - SSL操作大全
- android andbase,andbase
- ugui 九宫格和图片切割
- oracle中日期格式的注意事项
- Echarts 3D饼图开发
- 为什么要用用例图 用例图是什么 用例图怎么画 用例图有哪些元素
- Feem(局域网文件传输工具)官方版
- 深度解析FUTABA的SBUS协议(/天地飞遥控器的WBUS协议/Robomaster接收机的DBUS协议)到底是啥?
热门文章
- 【Mac brew】代理安装brew insall
- 数组的几种定义方式及初始化
- qt中dll缺失以及无法启动程序的正确解决方法
- 什么样的 python 可以可谓专业 PyPI 项目?刚刚学到三个概念:pep8、Sphinx、pytest与GitHub Action的集成
- iOS中真机连接电脑运行程序出现问题
- PYNQ实战笔记(一)————常用的代码使用及配置技巧-持续更新
- ExcelReport第二篇:ExcelReport源码解析
- 支付宝sdk java对接_java后台支付宝app支付调用sdk进行支付
- 华为交换机eth口作用_华为交换机口如何绑定端口号
- 放下十样东西,你会更优秀!