C语言小板凳(1)
①strlen()函数作用:计算字符串的长度,当遇到“\n”字符时结束,即遇到数值“0”时结束计算,有一点特别要注意当这个函数用来计算数组的长度的时候遇到数值0他就停止计算了!
②registerkeyword修饰的变量不能够使用“&”取地址符来获取地址,由于它可能不在内存。
③ 问:“static”keyword修饰的变量能被改变不?
答:肯定能够,它在编译的时候放在静态区,生长期是在整个程序的执行的周期。
④keyword“const”修饰的变量的属性是仅仅读。注意它是变量,其值在编译期间是不能被使用的,因此,在定义数组的时候千万不要傻叉一样拿const变量来指定数组的个数,这样是编译只是的
⑤“const”keyword修饰指针变量时跟位置有关,且看以下的样例
const int *p; 和 int const *p; //两个一样*p仅仅读,p可变
int * const p; //*p可变,p不可变
const * const p; //两个都不可变归纳为一句话就是:忽略类型名。“近水楼台先得月”。哈哈。好好意会意会^_^
说到类型名。有一点不得不说。typedef出来的是“新的”类型名,记得喔,遇到const时也要会变。
⑥volatile可防止代码被编译器自做多情地优化。看一个样例
int i=10;
int j=i; //运行完这一句。编译器并没有把赋给j的值丢掉
int k=i; //继续使用上面没有丢掉的值,不会产生汇编代码去又一次载入i的值看。要是期间有谁改变了i值不就出事了!
⑦写一个測试代码来推断当前系统的存储方式是大端(高地址存低字节)还是小端
...
union test_mod
{
int i;
char ch;
}c;
c.i=1;
return (c.ch); //假设返回的是1,说明是小端模式
⑧enum枚举类型:枚举常量在编译时确定其值。从有赋值处開始依次加1。假设没有赋值则从0開始加
#include <stdio.h>
void main()
{
char len=0;
enum ColorVal
{
BLUE=1,YELLOW,
RED,
ORANGE,
GREEN
} MyColor;
len = sizeof(MyColor);
printf("\n yellow = %d\n",YELLOW);
printf(" sizeof(MyColor) = %d\n\n",len);
}
结果:
原因:枚举变量是int型的,上面定义的MyColor就是一个枚举变量。而枚举变量一个时刻仅仅能取一个值。这个值就是从枚举的“区间”里边取出来的。所以说,接下来不用说都明确啦
有一点要注意的是枚举变量里面的成员是能够单独拿出来使用的,成员是常量哦。并且记住不能MyColor.BLUE类似于结构体那样的操作
好好学C,一步两步,一步两步!
C语言小板凳(1)的更多相关文章
- 狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(2)
前文链接:狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(1) 小甲鱼在很多情况下是跟着谭浩强鹦鹉学舌,所以谭浩强书中的很多错误他又重复了一次.这样,加上他自己的错误,错谬之处难以胜数. 由于拙 ...
- 通过反汇编C语言小程序学习Liunx汇编语言
大家好! 我是来自山东师范大学的吴乐. 今天在<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ...
- 【C语言探索之旅】 第一部分第八课:第一个C语言小游戏
内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写 ...
- Linux下简单C语言小程序的反汇编分析
韩洋原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 写在开始,本文为因为参加MOO ...
- c语言小程序以及java生成注释文档方法
c语言小程序:sizeof和strlen() sizeof运算符以字节为单位给出数据的大小,strlen()函数以字符为单位给出字符串的长度,字符和字节不是一回事. char类型用于存储字母和标点符号 ...
- C语言小程序——推箱子(窄字符和宽字符)
C语言小程序——推箱子(窄字符Version) 推箱子.c #include <stdio.h> #include <conio.h> #include <stdlib. ...
- Linux C语言小程序
Linux C语言小程序 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include & ...
- C语言小练习之学生信息管理系统
C语言小练习之学生信息管理系统 main.c文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 ...
- 012-C语言小游戏之推箱子
012-C语言小游戏之推箱子 一.创建游戏地图 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #define ROWS 11 #define COLS 12 char ...
随机推荐
- EntityFramework之一对多关系(三)
上篇介绍了一对一关系,下面介绍下一对多关系代码编写. 1.新建model实体,Product是产品类,Order是订单,一个产品对应多个订单 public class Product { public ...
- Javascript短路表达式
短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短 ...
- 纯HTML+CSS写出一颗会飘动的树,有没有惊艳到你呢?
前言 使用HTML+CSS能写出什么惊人的效果呢? 针对这个问题,我总会看到类似的回答,比如没有JS,前端永远都是静态的:HTML5要搭配JS,要不然一文不值. JS固然强大,但CSS也并非一文不值, ...
- Python的支持工具[0] -> 环境包管理工具[1] -> Anaconda
Anaconda包管理工具 / Anaconda Package Management Tools Anaconda is the world’s most popular Python data s ...
- openfire源码研究笔记:对设计模式及原则的学习
原文:http://blog.csdn.net/jinzhencs/article/details/50522105 一.拦截器的实现 地点: package org.jivesoftware.o ...
- 发掘StateListAnimator的全部潜能
原文地址:https://blog.stylingandroid.com/statelistanimator/ 原文作者:Leave a reply 译文出自:安卓巴士 译者: MrlLee 校对者: ...
- android在Service中弹出Dialog对话框,即全局性对话框
先说具体做法,原因在其后给出: 写好Alter功能块后,在alter.show()语句前加入: alert.getWindow().setType(WindowManager.LayoutParams ...
- django前后端数据传输学习记录
在开发过程中会遇到这样的情况 后台返回了一堆的数据,是一个列表 例如 datas = [{"a":1, "b":2}, {"c": 3,&q ...
- json字符串与java对象互转
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
- BeagleBone Black板第四课:简单LED控制实验
BBB板第四课:简单LED控制实验 学习BBB板的终于目的是想像单片机一样做控制,但控制思路全然不一样(Linux下控制硬件设备实质就是对相关设备虚拟文件的读写).研究了几天头都大了还是没有进展,网上 ...