数据类型、常量、变量及运算符

<数据类型上>

笔记

欲速则不达,建议先完成 的任务!

继续学习

通关时间从学习第1个课程开始计时

9天内通关,可获得赏金100元

开始学习
该课程需要登录后才能观看
3400 位同学正在学习! 查看详情

一二三

我测试的 局部变量 初始值一直是0,并不是随机值,怎么回事?

int main(int argc, char *argv[]){ int a; printf("%d\n",a); return 0 ;}这里打印出来的a一直为0,这是怎么回事?

m.

1

回答

主函数

赢在物联网回复:

具体情况具体来,根据使用场景使用,主要是看编译器,小美老师那个标准C语言写法!

爱笑张紫琳

2

回答

负数

赢在物联网回复:

最高位代表符号位,用来表示符号类型

HelloWord

1

回答

unsigned 什么时候用到一直不懂

韩hyr回复:

越往底层学用到的越多,主要是需要无符号整型的表示在应用层接触很少。

HelloWorld

1

回答

++与--

韩hyr回复:

一般用于循环的控制, 或者是和指针结合使用,可以看看指针后刷些题目哦

坚持不懈

1

回答

char型默认是unsigned还是signed呢?

韩hyr回复:

char是默认省略

unsigned

的写法

MAKERU284004535

1

回答

MAKERU284004535

1

回答

ZXPIOT

6

回答

编写程序头文件的快捷键是哪个啊?每次创建都要重新打太麻烦了

坚持不懈回复:

先码出main 然后按Tab就可以自动补全main函数 若想再加#include<stdio.h> 可通过修改/home/linux/.vim/snippets 中的c.snippets 在snippet main中加入#include<stdio.h>即可

MAKERU582067379

1

回答

如何同时打开VI编辑界面及虚拟机输入指令界面呢

二莹子回复:

可以打开多个终端呀~ctrl+shift+n 可以再次打开一个同路径的终端。

执剑江湖

1

回答

这是个什么错误

赢在物联网回复:

语法错误,双击定位到错误处,检查这个地方的代码!

蓝天白云

1

回答

怎么才能全部的视频都免费看

赢在物联网回复:

直接购买啊!天下哪有免费的午餐

Steven

1

回答

关于运算符

赢在物联网回复:

前面加0表示这个数字是八进制表示,前面加0x表示这个数字十六进制表示

MAKERU776210525

1

回答

man ascll 用不了

杨老师回复:

应该是man ascii,注意拼写哈。

跟彭于晏一样man

1

回答

请告诉我怎么用八进制输出?

赢在物联网回复:

可以用%O来进行八进制输出,不过不推荐这样使用。

跟彭于晏一样man

1

回答

老师,你是怎么快速算得1110 的二进制表示十六进制的E?

赢在物联网回复:

8421相加,就是看型知意,比如一看到1110就知道表示十六进制E


linshihuan

1

回答

音量过大

二莹子回复:

新开

1

回答

vi /usr/include/limits.h打开是个空的文件

二莹子回复:

嗯嗯 路径不同呢

新开

1

回答

permission denied

新开回复:

是我的gcc执行文件打错了,应该是  ./a.out,我打的是./char.c

MAKERU446333406

1

回答

bool程序

二莹子回复:

main的有两个参数,其中整型argc表示命令行中字符串的个数(命令+参数),指针数组argv[]指向命令行中的各个字符串

那年今天

1

回答

OR和AND优先级是做什么用的

二莹子回复:

就像是数学里加减乘除一样,同为运算,但是乘除的优先级就比加减的高,规定运算符的优先级,可以防止复杂运算的时候产生歧义。

瞎子画家

3

回答

vi编辑如何改变字体颜色

杨老师回复:

配置下vim就可以了,咱day1课程资料中有个vimconfig压缩包,用它来配置就可以了。

diamon

1

回答

老师,括号里面的代表什么意思

杨老师回复:

括号里的内容是我们main函数的参数,argc是传入参数的个数,argv来存放传入的参数,这个是一个模板,我们day8 day9会讲函数,你会对它理解更深刻哦。

那年今天

2

回答

fatal error: stdion.h: No such file or directory

杨老师回复:

头文件是stdio.h,不是stdion.h,细心点哦。

顾你一世

1

回答

生成可执行文件问题

顾你一世回复:

已懂

红旗智联

3

回答

a是10进制,a>>4咋位移

顾你一世回复:

计算机会把他转换成二进制再进行移位,然后简单记法,b=a>>4;就是向右移4位,反方向记就行,我的解答希望对你有帮助


MAKERU809044441

2

回答

优先级问题

吴老师回复:

因为 x++ 是后加加,  是先用再加

MAKERU130127467

1

回答

无法创建目录

MAKERU130127467回复:

共享文件问题

浙江土特产代购

1

回答

听不懂

二莹子回复:

007

2

回答

vim 的mf快捷键怎么配置

二莹子回复:

直接main加Tab键就行了

冬天的暖阳。

1

回答

怎么把屏幕放全屏的啊

韩hyr回复:

装了VMware tools 软件了么?装了这个软件,在虚拟软件workstations顶部菜单找 “查看” --》“立即适应客户机”

MAKERU263503244

1

回答

不是很懂int main后面跟 (int argc , char * argv[])的用途

韩hyr回复:

这个是main函数的参数,可以通过传参提供一些动态的数据值,这个是可以不传参数的,没有就不传

蓝平井

1

回答

位运算和逻辑运算区别 比如&和&&

MAKERU050987164回复:

位运算&是指有0出0,全1出1,逻辑与&&,是指,条件成立就输出1,不成立输出0

举例 int a=2,b=3,c=0;c=a&;  //转化为2进制就是  0000 0010 & 0000 0011 = 0000 0010;

 c就输出为2;

举例int a=2,b=3,c=0; if(a&&b)  //分析:变量2,3为真,及C的值为1;

hitler753951

1

回答

宏展开的问题

韩hyr回复:

问题描述不清,不知道你的问题是在问啥,可以在班级群里问问。

江湖T.L

1

回答

第三题的题干有问题吧!!!

小灰灰回复:

首先理清楚理清楚10进制数据和16进制数据之间转化的关系,然后写代码实现10进制数据到16进制数据的转化算法就可以了,继续加油

MAKERUone

1

回答

怎么设置可以让编程有不同颜色,这样比较更好看

集团总部-周凯回复:

.vimrc 配置文件

张心进

1

回答

快速书写上一次输入的命令是按什么键

小灰灰回复:

键盘上有个上键,你可以按一下试一下

王强

1

回答

进入编辑器之后自动出现的命令怎么设置

吴老师回复:

你所在的板级群共享文件中有 vim配置.mp4,  视频文件, 可以看一下,

潇燕半芹

1

回答

16->2进制转换

LXF回复:

十六进制到十进制为 85

秀吉

1

回答

vim配置

杨老师回复:

我们day1的课程资料中有一个vimconfig文件,里面有readme,根据readme来配置下。

HH30025953

1

回答

如何在虚拟机中切换语言

木棉回复:

改虚拟机ubuntu默认语言的方法:先联网,参考http://www.makeru.com.cn/course/details/2748,然后在setting的language中添加,简体中文,参考https://jingyan.baidu.com/article/7f41ececea9b59593d095c85.html.

流风回雪

1

回答

变量auto和static的区别?

杨老师回复:

是的,总结的正确

xiaorenwu

3

回答

怎么直接出来int main(int argc,char *argv[])的,这些都是什么意思啊

MAKERU580157553回复:

打出 main 然后按Tab键就可以了

argc是命令行总的参数个数

argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数,

char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数argv[]参数,数组里每个元素代表一个参数;


alucard

1

回答

关于static型变量在linux中的问题

吴老师回复:

1.从生命周期讲:static 变量存放在静态存储区,在程序的运行期间不被释放。

                auto 变量存放在动态存储区(栈区),它属于函数内的局部变量,作用域只在自己的代码块中(代码块:以左花括号开始,以右花括号结束)。在进入作用域是生成自动分配内存,模块结束后释放内存。

2.从初始化上讲:static 变量如果没有初始化,默认值为 0 、NULL 或者‘\0’。

                auto 变量 如果没有初始化,默认值是随机值,不确定的。

3.从书写上:  static 变量 static 关键字不能省略

               auto 变量  默认情况下 局部变量都是 自动变量,可以省略 关键字“auto ”

全宇宙对半斤最好的人

1

回答

bool型为什么赋值-1 输出来的确是1

吴老师回复:

bool 变量是 值保存  真或者假这个值 (TRUE 或者 FAUSE), 1 表示 真, 0 表示假。

在C语言中 所有的非零值都为真, 所以给bool变量赋值,赋值为0 则为0。 赋值为非0 则为1。

打卡怪

1

回答

输入部分名字找全名

杨老师回复:

此时按tab键就可以了。

a胡

1

回答

关于上节课移位的问题

韩hyr回复:

同学,首先你得先明白你对定义的理解有误,1byte == 8bit,用8位2进制位表示

进步我最大

1

回答

起风

1

回答

加载半天,网站好卡啊

有梦去远方回复:

已经解决,祝你学习愉快

王晓亮

1

回答

lev1中的day2作业中的经过程序后变量a的值是多少,虽然我调试来输出结果显示为-9

杨老师回复:

  1. 对于我们当前系统,unsigned int应该是4字节,32位,你的推导没有问题,但是位数只有16位;

  2. unsigned int类型需要用%u打印,你用的是%d打印,%d是有符号整形,在这里造成了数据越界。

GTR086

1

回答

小美老师 9天精通Linux C语言 ppt里截图的是哪本书的内容,书名叫什么啊?

杨老师回复:

这些基础,任何一般C语言书籍都可以参考哦!在课程资料中,我们有提供配套的资料,可以查看。

蛟凤谷菱

2

回答

老师,vi /usr/incude/limits.h为什么进去是一个编译环境呢

吴老师回复:

你可以,找辅导老师,给你远程看一下

个个都是人才说话又好听

1

回答

转换问题

杨老师回复:

alt + tab键

赵传达

1

回答

怎么快速输入的 main函数体呀?

吴老师回复:

群文件中 有一个 视频看下   vim配置.mp4 里面讲有

诺晨曦

1

回答

不知道vi的操作

韩hyr回复:

这个是配置了vim编程软件,可以在网上找教程配置

九亿少女的梦

1

回答

我写这段代码 报错

杨老师回复:

按你描述的错误是:在main函数中,但是你没有贴你的代码,也没有把错误全部提交,这样老师没办法知道你的错误是什么。

男神就是我

1

回答

Terminal不会用怎么办

韩hyr回复:

ctrl+alt+t 快速打开,这个是输入命令控制的,课程2会讲些。

彭彬

1

回答

常量赋值,在整个代码中的存储位置是不变的?

吴老师回复:

系统在运行的时,会根据代码的逻辑,去修改变量所在内存的值。

C代码中的变量分为好多种,例如局部变量、全局变量、静态变量等等。不同类型的变量所在的内存区域不同,生命周期不同,你说的用于存储变量的区域应该就是这个意思。

访问变量其实就是访问变量所在的内存空间,访问内存的工作都是有代码来完成的(代码段),你说的另一块区域就是所谓的代码段

烽人

1

回答

请问小美老师,你用的是那本教材?

韩hyr回复:

华清的教程哦,《嵌入式LinuxC语言程序设计》

蔡振启

1

回答

int类型占四个字节吗

韩hyr回复:

数据类型占内存的位数实际上与操作系统的位数和编译器(不同编译器支持的位数可能有所不同)都有关 ,具体某种数据类型占字节数得编译器根据操作系统位数两者之间进行协调好后分配内存大小。具体在使用的时候如想知道具体占内存的位数通过sizeof(int)可以得到准确的答案。

癫材

2

回答

如何查看当前寄存器里的值

吴老师回复:

读出来就可以了呀 

癫材

1

回答

老师,请问浮点型在实际存储中是以怎么样一种二进制存放的?

韩hyr回复:

具体的讲解会比较长,可以到百度中参看博客的讲解

雷悦

1

回答

自加

韩hyr回复:

++符号有两种计算形式,一种是++a,另一种是a++。++a是先自身加一(a)再用结果值做所处环境的运算;a++是先用现在的值做所处环境的运算再将a的值自增1。

雷悦

1

回答

两个界面

韩hyr回复:

底行模式下,输入命令(wqa)是全部保存退出,同时打开,两个是不同的文件需要分别操作,在打开一个文件的界面,用底行模式输入命令(vsp 文件名)可以分屏同时打开另一个文件,可以操作。详细的vim操作指令等可以看下vi手册,在资料分享里有哦

mn

2

回答

怎么直接出来int main(int argc,char *argv[])的,这些都是什么意思啊

C语言

mn回复:

哦,知道了,后面的视频有提到

杨建新.c

1

回答

··vi关键字颜色怎么加??

C语言

吴老师回复:

vim 配置, 在群资料里有一个 小视频 看一下

没一点点不妥

1

回答

可以给我一个ubantu和wmware的网址吗

C语言

韩hyr回复:

C语言课程第一天观看页面左下角就有下载链接哟

MAKERU412716849

1

回答

数据对齐

C语言

吴老师回复:

你说的自然对齐, 应该就是不做任何操作的情况下, 结构体的对其规则吧。 

MAKERU412716849

1

回答

数据对齐

C语言

吴老师回复:

各个类型自然对齐,即其内存地址必须是其类型本身的整数倍。结构体对齐到其中成员最大长度类型的整数倍。

按照这个对自然对齐的理解的话, 你说的保证自然对齐,其实就是不用做任何操作就已经是 自然对齐了

MAKERU412716849

1

回答

浮点数输出

C语言

吴老师回复:

这个跟 浮点数在内存中的表示方法有关,这个规则很复杂, 不用研究的太深入

原野风霜324

1

回答

VI配置

C语言

吴老师回复:

直接找我,我给你发一个配置 vim 的工具

低调的华丽

1

回答

老师,有PPT上有个地方写错了

C语言

吴老师回复:

谢谢喽

Roger

1

回答

C运算符的优先级 问题

Roger回复:

已经明白了。是运算和优先级级之间没有搞明白,最简单的例子。 a=x++;先赋值还是 x++运算? 明显是先赋值。

爱学习的小男孩

1

回答

什么时候判断使用bool函数?

小美回复:

单独用的不多,主要是条件判断、循环控制时,写表达式的。如:if switch while后面表达式的结果就是bool型的。

阿祥

2

回答

map mf 绑定快捷键 怎么用

神圣雅诗人回复:

你搞好了么


忐忑滴胡桃

1

回答

老师如何打开两个VI呢

吴老师回复:

试一下命令  vim a.c  b.c -O   。 看看是不是你想要的结果。 a.c 和 b.c 是要编辑的源码文件

qzuser

1

回答

vi 如何快速生成main函数

小美回复:

设置vi的配置文件,.vimrc,比如

map mf i#include <stdio.h><Esc>o<Esc><Esc>o<Esc>iint main(int argc, char *argv[])<Esc>o{<Esc>o<Esc>i<Tab>return 0;<Esc>o}<Esc>2ko


按mf,就可以出来。


彩虹的微笑

1

回答

老师,PPT怎么下载?、

小美回复:

我看了,您说得视频,页面左侧有配套资料下载的,我们提供的网盘链接。有技术问题,联系首页在线咨询,随时为您服务

孟飞

1

回答

讲义下载不了

韩hyr回复:

http://www.makeru.com.cn/course/157.html

孟飞

1

回答

讲义下载不了

韩hyr回复:

新版课程正在升级中,作业讲义可以先在旧版中下载

眼镜我来了

1

回答

小美老师完全可以靠颜值吃饭,却靠技术。

韩hyr回复:

@小美老师,这里发现一枚粉丝

上次保存笔记

看见好看好看就很快很快就会看见

保存 修改