嵌入式学习笔记(第六天)c语言续
来源:互联网 发布:在堪萨斯大学读书 知乎 编辑:程序博客网 时间:2024/04/28 00:27
数组 :将同类型的同作用的变量,放在一起统一管理,
所有元素,在内存中,都是连续储存的,
数组在声明的时候就需要确定多少个元素,内存空间是一次性开辟成功
使用数组的某一元素,需要使用数组名加下标的方式使用,下标从零开始计数
数组初始化
int arr[5]={0}; arr[0] 数组首地址
数据类型:
基本数据类型
指针类型
枚举类型
指针--> 指针类型变量
*p1=a;
p1=&a;
指针只是一个存储地址编号的变量
指针类型只是普通数据类型之一
*p 间接引用 可以取到或修改 这块内存地址上储存的内容
指针的指针 二级指针 **p1
指针数组 数组中全是指针的数组
加1 , 在数组中移动
加* , 取出对应地址的内容
int a = 2;
int b = 3;
int c = 4;
int * p1 = &a;
int * p2 = &b;
int * p3 = &c;
int * parr[3] = {p1,p2,p3};
for(i = 0 ; i < 3 ; i++)
{
printf("%d\n",**(parr + i));
}
二维数组 a[][] 可看成多个一维数组
Int arr[行][列] == int arr []
Int arr[] 相同列数的 多个一维数组
*(arr+1) 在一个数组中移动,移动了一列 ==arr[0]-->arr[1]
arr 行指针
行指针加*变成列指针
列指针加&变行指针
字符串 实现基于字符数组
字符串有有效字符
字符串结束标志:'\0'
声明字符串就是声明一个字符数组
strcmp (arr,brr)==0 比较字符串是否一样
strlen(name1)==strlen(name2) 确定字符串是否一样
strlen(name); 字符串有效位是多少
sizeof(name); name储存宽度
strcat (name1,name2); 将name2接到name1后输出 越界问题 name1储存空间是否够容纳name2
strcpy (str1,str2) 把二拷贝给一
char name[20] = "jack";
int age = 40;
char result[50];
sprintf(result,"姓名:%s,年龄:%d",name,age); 将“”里的内容作为result
printf("%s\n",result);
函数 :
return 函数名(needs) 返回值 函数名 参数需求
void myprintf(); void 不需要返回
Int myprintf(); 返回值为int型变量
形参 :在声明函数时,用来代替真实输入值
实参: 函数调用时,输入的真实值
不需要改变外界的值的时候,传变量本身,也就是赋值 传值
要改变外界的值的时候,传变量的地址。 传址
头文件 包含
aa .c --->aa .h
在.h 文件中 写入函数声明及宏定义
#ifndef _filename_h_
#define _filename_h_
宏定义 #define NAME_LEN 20
函数声明;
#endif
gcc编译器处理步骤:
预处理 -E
汇编 -S
编译 -c
gcc -c a.c -o a.i -o 给新名字
make 编译管理工具
建立makefile文件格式
main:main.o a.o b.o
gcc main.o a.o b.o -o main
main.o:main.c
gcc -c main.c -o main.o
a.o:a.c
gcc -c a.c -o a.o
b.o:b.c
gcc -c b.c -o b.o
变量 : 必须先声明 声明可以多次 ,不开辟空间。 定义只能一次 , 会开辟空间。
后定义
再使用
关键字 : static 静态变量 :生命周期变长,整个程序存续期间都存在 ,值能够保存下来,初始化语句只运行一次
extern 声明外部变量 , 告诉编译器,变量声明在别的文件 ,暂时忽略定义错误,一般用在全局变量上
- 嵌入式学习笔记(第六天)c语言续
- 嵌入式学习笔记(第四天)c语言续
- 嵌入式学习笔记(第五天)C语言续
- C语言学习的第六天(续)
- 嵌入式学习笔记-C语言(一)
- 嵌入式学习笔记-C语言(二)
- 嵌入式学习笔记-C语言(三)
- 嵌入式C学习笔记(三)嵌入式开发选择C语言的原因
- 学习C语言的第六天
- 学习嵌入式C语言
- 程序设计与C语言学习笔记_第六章数组
- 嵌入式开发之linux基础第六天学习笔记 shell脚本编程(一)
- 嵌入式C语言学习(2)
- 嵌入式学习5(C语言基础)
- C语言第六天
- 嵌入式学习笔记4-C语言环境初始化
- 嵌入式开发之C语言基础第三天&第四天学习笔记
- 《嵌入式linux上的c语言编程实践》(亚嵌教材)学习笔记
- splplus设置启动环境变量
- 字节流(InputStream)输入中文汉字到控制台出现乱码的问题解析
- jquery源码解析(第3章元素之一些常见的细节)
- uva 10817 状态压缩DP
- 内存泄漏相关问题
- 嵌入式学习笔记(第六天)c语言续
- Ext4 Project Quota磁盘配额使用介绍
- 十大基础排序 · 二 --- 希尔排序(不稳定)
- 数控车床和普通车床的异同
- javaScript & jquery完美判断图片是否加载完毕
- Linux基础命令学习
- 避免重载出现歧义
- Qt笔记-QPushButton旋转图片与只响应图片所在的区域
- linux串口超时时间设置