c语言回收字符串空间,C语言基础知识(字符串,函数,内存空间)
C 语言重点
arc4random() //产生一个随机数arc4random()A 随即数对41取余 得到0-40的数余数是正数
arc4random() % 11 + 20// 20 -30的数公式 arcrandom()%(b-a+1) +a对a-b范围内取余数
pow( a, b)代表a的b次方
sqrtf(a) 表示 对a开方 就a的 1/2 次方
字符数组定义://数组不能参加运算,数组元素能参加运算
// 字符串的字符不能整体赋值,因为字符串是字符数组。需要使用strcpy()
char a[10]="iphone";尽量又这个!! 或者char
a[10]={'i','p','h','o','n','e'}; //定义一个长度为10的字符数组
strlen() 计算字符串的长度
strcpy() 字符串的拷贝strcpy(a,b)把b拷贝到a中最好在a,b数组前面定义数组的大小 因为如果b的大小大于a,虽然成功拷贝 但拷贝多余的空间只是暂时给a如果有其他的申请到a多余的空间其中,a只能保持原来的空间!所以不定义不安全
strcat() 字符串拼接strcat(a,b)把b拼接到a后面
strcmp() 字符串比较
函数声明写在.h里面
定义写在.m里面
普通变量形参的值是从 实参的值拷进来(形参和实参不同地址),是两个变量
数组作为参数,把数组名传入,即数组的首地址(与普通变量不一样),形参和实参相同地址,是一个变量
当数组作为参数,数组的长度需要传进去
结构体值允许初始赋值能全部赋值,不能重复赋值常量,后面只能单个元素赋值。但可以重复让其他结构体赋值给
如Stu a = {“da”, 23, 43}; 不能再赋值 a = {“tf”, 3, 1}; 但可以 b ={“fd”, 5, 2} a = b;
typedef struct stu Stu //把Stu代替 struct stu
指针 %p//输出地址
int q=5
int *p=null;// p是指针变量,就是地址变量 (int *)是一个整体NULL 恒等于 Ox00000000
p=&a;//p是常量a的地址
printf("%d",*p)//指针变量前面加* 是表示地址里面的内容
//& : 取地址运算符,根据变量名,获取首地址
// * :取值运算符,根据地址,获取对应的值
指针占用多少字节取决余操作系统位数 32位占4位 64位占8位
只要是指针就可以用 -> 因为-> 就是给指针用的
char 型变量 占一个字节空间
sizeof()看一个变量占多少字节
数组作为函数参数的时候,其实是传递给函数的数组的首地址
数组不能直接赋值,结构体可以直接赋值,就是将一个结构体对象赋值能另外一个对象
指针可以当数组用 数组可以当指针用//去*在变量右边加[]
内存:5个区
1.栈区:变量
2.堆区:(重点--动态内存分配)
3.常量区
4.静态区:全局区 // 静态变量只能被初始化一次,重复初始化 只有第一次有效
5.代码区
char str[] = “iPhone”;// 在栈区申请7个字节空间存储 iPhone 是从常量区的iPhone 拷贝过去
char *str = “iPhone”; // str 是指针变量 在栈区申请8个字节空间(64位)存储常量区iPhone的地址
常量区只读不能修改 所以 char *str = “iPhone”; 所以str[1] = ‘p’;是错误的
因为改变了常量区,
但str = “dafaf”; 可以 因为指针重新指向另个一常量的地址了
内存操作函数
calloc(n,sizeof(int));//分配n个4个(int)字节的内存里面都清0;
malloc();//不清0;
reallo(void *p,sizeof(int))
void *memset(void *p,int c,sizeof(n) );//从p开始 长度为n所有字节赋值为c ,通常用于清除结构体或者数组元素
void *memcpy(void *p,void *q,sizeof(n));//从q拷贝n个字节到p中宏
#define //宏纯大写定义宏或k+驼峰法(推荐)
如#defineARRRYCOUNT10 或 #define kArrayCouny 10(推荐)无参宏
//带参宏 #define kMaxValue(A,B) (A>B?A:B)
条件编译
#ifdef标识符A//如果定义了标识符A
代码段1
#else//否则
代码段2
#endif //结束语句
枚举//成为高手多使用枚举
enum 枚举名{ };//常与 switch(){ case:}一起使用
static 用于修饰全局变量
函数指针//函数名代表函数地址,经常与函数回调一起用
int (*p)(类型 形参);
typedef int (*PFUM)(int,int); //相当于 int (*)(int,int)改名PFUM
函数回调int getValue(int x,int y,PFUM p){}
PS: 小二欢迎留言。
c语言回收字符串空间,C语言基础知识(字符串,函数,内存空间)相关推荐
- Selenium基础知识 自动登录QQ空间
Selenium基础知识 自动登录QQ空间 from selenium import webdriver import timedef auto_login():driver = webdriver. ...
- python语言中内置的字符串排版方法_python基础知识(python内置数据类型-字符串)...
python中的字符串 字符串基本特点 字符串的本质是字符序列.python中的字符串是不可变的,无法对原字符串做任何修改(不能用下标赋值的方式去改变字符串).但是可以将字符串的一部分赋值创建新的字符 ...
- C语言教程(四):基础知识(最后一续)
参考: <标准C语言基础教程>(第四版)[美] Gary J.Bronson 著 张永健 等译 CSDN博客:https://blog.csdn.net/alihouzi/article/ ...
- 零基础学c语言职坐标,C语言自学入门|最全基础知识总结!
C语言作为一门非常适合编程入门的语言,打好基础的重要性不言而喻.所以特此奉上这一篇很干很干的干货,希望小伙伴们能从中受益. 一.C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成.格式 ...
- 106划为c语言16进制数,计算机基础知识题(含答案)
<计算机基础知识题(含答案)>由会员分享,可在线阅读,更多相关<计算机基础知识题(含答案)(27页珍藏版)>请在人人文库网上搜索. 1.第第1 1章章 计算机基础知识计算机基础 ...
- c语言中定义结构体指针并指向一片内存空间和直接定义一个结构体变量的区别 Node *p=(Node *)malloc(sizeof(Node)); 和 Node p 两个有什么区别??? Node是一
(来自百度解答) Node *p是定义一个Node结构体指针,指针名为p,指向一个Node结构体,并为这个结构体分配了内存空间 该结构体无命名 Node p是定义一个Node结构体,结构体名为p. 追 ...
- linux 添加字符串数组中,Linux-Shell基础(变量,字符串,数组)
一. 什么是shell shell是一个用C语言编写的程序,它是用户使用Linux的桥梁,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统 ...
- Java基础知识----字符串
一.创建字符串 1.声明字符串 在Java语言中的字符串必须在一对" "(双引号)之内. 例如: "33"."Hello"."世界 ...
- 鸿蒙轻内核虚拟内存基础知识:虚拟内存进程空间编号
摘要:本文介绍了OpenHarmony鸿蒙轻内核LiteOS-A的虚拟地址空间编号知识,详细分析进程空间编号的申请与释放操作. 本文分享自华为云社区<鸿蒙轻内核A核源码分析系列四 (1) 虚拟内 ...
- 八门神器java版本_【修改教程】java基础知识字符串处理_八门神器
[Java基础知识]字符串处理1.获取字符串的长度 String s = "AIDE"; System.out.println(s "长度为:" s.lengt ...
最新文章
- 传感器标定两篇顶会论文解析
- display:inline-block的妙用!!列表布局!!
- Node.js 执行webpack命令出现的错误
- wolf李桃梅CCNP视频笔记(OSPF-3)(上)
- dedecms如何调用当前栏目的子栏目及子栏目文章
- sizeof string
- java swing 动态生成表格_6 个曾经牛逼哄哄的 Java 技术,你用过吗?
- SpringMVC注解@RequestParam全面解析____ 注解@RequestParam如何使用加与不加的区别
- c语言突然出现图片,c语言能显示图片吗
- 机房收费系统重构版:照葫芦画瓢
- android 自定义button点击事件,自定义View(2)-从源码分析button的onClick和onTouch
- 平均值(Mean)、方差(Variance)、标准差(Standard Deviation)
- VMware Workstation 14.1.1 精简特别版
- cheerio获取outerHTML
- 轻松搞懂Java中的自旋锁
- 怎么理解“不经审视的人生,不值得过!“
- (Java)预测身高案例
- Windows Server 2012 磁盘管理
- 【Qt开发】编译时报“undefined reference to“问题的解决方案
- brooks levitate_超越Boost的脚感: Brooks Levitate2体验
热门文章
- Python之网络图片爬取
- raise IOError('The file is not exist!')
- 【Mybatis 之应用篇】 4_动态SQL、缓存
- 公司用的 MySQL 团队开发规范,非常详细,建议收藏!
- 终于找全啦!一二线城市知名互联网公司名单!对着找就对了
- hibernate继承关系映射关系方法(二)--每个子类一张表
- 指数随机变量 泊松过程跳_《常见随机过程》(一)
- (JAVA学习笔记) 关于数据类型的一些扩展-面试时经常问到的问题
- 杭电oj1087最长递增子序列java实现
- Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法