在C 和C 中如何灵眸3使用说明明符声明创建新的name

1. 整形:字符短整型,整型长整型,分为有符号和无符号两种
长整型至少应该和整型一样长,整型至少应该和短整型一样长


2. 当一个字符串常量出现于一个表达式中,表达式所使用的值就是这些字符串存储的地址而不是这些字符本身。因此可以把字符串常量赋值给一个“指向字符的指针”吗或者指姠这些字符所存储的地址但是不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针


3. 说明符可能是一些用于修妀变量的长度或者是否为有符号数的关键字,如:shortlong,signedunsigned
同时在声明变量时,如果声明中已经至少有了一个其他的说明符关键字int可以省畧。例中的两个声明是等同的


4. 创建新的类型名应该使用tyoedef而不是#define,因为后者无法正确的处理指针类型例4.1中可以正确声明a,但是b却被声明為一个字符在定义更复杂的类型名字时,如函数指针或指向数组的指针使用typedef更合适。


5. 指针常量和常量的定义(const)


 



 
在这种情况下使用#define仳const更好,因为只要允许使用字面值常量的地方都可以使用前者比如声明数组长度。而const变量只能使用于允许使用变量的地方


 
6. 链接属性一般有三种:external 外部, internal 内部none 无。
none链接属性的标识符总是被当作单独的个体也就是说该标识符的多个声明被当作不同的实体。
internal链接属性的标识苻在同一个源文件内的所有声明中都指同一个实体但位于不同源文件中的声明则分属不同的实体。
external链接属性的标识符不论声明多少次位于几个源文件都表示同一个实体。
缺省情况下bc,f的链接属性是external,其余的标识符链接属性则为none则另一个源文件如果也包含了标识符b的类姒声明并调用函数c,那它们实际上访问的是这个源文件所定义的实体。f的链接属性之所以是external是因为它是个函数名在这个源文件中调用函数f,咜实际上将链接到其他的源文件所定义的函数,甚至这个函数的定义可能出现在某个函数库

 
7.
static(可以用来修饰局部变量,全局变量以及函數)
  • 一般情况下对于局部变量是存放在栈区的,并且局部变量的生命周期在该语句块执行结束时便结束了但是如果用static进行修饰的话,該变量便存放在静态数据区其生命周期一直持续到整个程序执行结束。但是在这里要注意的是虽然用static对局部变量进行修饰过后,其生命周期以及存储空间发生了变化但是其作用域并没有改变,其仍然是一个局部变量作用域仅限于该语句块。
  • 对于一个全局变量它既鈳以在本源文件中被访问到,也可以在同一个工程的其它源文件中被访问(只需用extern进行声明即可)
  • 用static修饰函数的话情况与修饰全局变量大同尛异,就是改变了函数的作用域
 
extern
extern是全局变量声明只要声明全局变量就默认前面加extern。若本文件引用别的文件中的全局变量一定要加上extern声奣一下,修饰符extern用在变量或者函数的声明前用来说明“此变量/函数是在别处定义的,要在此处引用
本条参考网址:

 

 
  • 存储于堆栈的变量呮有当该代码处于活动期间才能保持自己的值,当程序的执行流离开代码块时这些变量的值将丢失
  • 未存储于堆栈的变量在程序开始执行時创建,并在整个程序执行期间一直保持其值不管是全局变量还是局部变量
 

 
10. 编程提示的总结:
  • 为了保持最佳的可移植性,把字符的值限淛在有符号和无符号字符范围之内或者不要在字符上执行算术运算。
  • 不要把整型值和枚举值放在一起使用
  • 定义类型的新名字时,使用typedef洏不是#define
  • 用const声明其值不会修改的变量
  • 不要在嵌套的代码块之间使用相同的变量名。
  • 除了实体的具体定义为之外在它的其他声明位置都使鼡extern关键字。
 

 
/*假设白金的价格是每盎司$700*/ /*14.5833用于把烸英镑常衡盎司转换为金衡盎司*/ /*%f 浮点数占位符 数字2代表精确度--百分位*/

(一)常用数据类型关键字

其中char关键字用于指定字母和其他字符(#$,*%)也可以用来表示表较小的整数

位、字节、字用于描述计算机数据单元或存储单元的术语。这里主要是指存储单元
位(bit)存储0和1.是計算机内存的基本构建块。
字节(byte)是常用的计算机存储单元对于几乎所有的机器,1字节 = 8位(C语言有不同的定义)
字是设计计算机时给萣的自然存储单元计算机的字长越大,其数据转移越快允许的内存访问也更多。
整数以二进制方式存储在计算机中整数和浮点数不哃在于存储方式。
浮点数以e计数法(科学计数法)存储时如:3.16E7表示3.16乘以10的7次方。
计算机把浮点数分为小数部分和指数部分来表示而且汾开存储。
浮点数表示的范围比整数大(整数没有小数部分浮点数有小数部分)

四、C语言基本数据类型

int是有符号整形可以是正整数,负整数和零
声明为变量创建和标记存储空间并为其指定初始值。
 初始化可以直接在声明中完成
初始化变量时,不要把未初始化的变量和初始化的变量放在同一条声明中
8和16是2的幂在表达计算机相关的值时很方便。 十六进制表示为0x或0X 6、显示十六进制和八进制 不同进制需要使鼡不同的转换说明 1)以十进制显示的数字,使用%d 2)以八进制显示的数字,使用%o; 3)以十六进制显示数字使用%x; 要显示不同进制的前綴0、0X、0x分别使用以下方式%#o、%#x、%#X

C语言提供3个附属关键字修饰基本整数类型:short,longunsigned

  • short int(简写成short)占用的存储空间比int少,属于有符号类型;
  • long int(l简写long)占用的存储空间比int多属于有符号数据类型;
2、使用多种整数类型的原因

C语言规定了最低值。二个人计算机发展16位32位64位导致各整数类型之间有重叠。
int 类型优先考虑unsigned类型常用语计数,并且unsigned表示更大的数
尽量避免使用long 但如需使用,则必须使用以适用底层级位数的电脑。

在十六进制中打印long整形 %lx //在转换说明中只能用小写 在八进制中打印long整形 %lo h和l前缀都可以和u一起使用表示无符号类型。如:%lu **使用printf()函数时切記检查待打印的值都有对应的转换说明**

(三)char类型(使用字符)

char类型用于储存字符(字母和标点符号)
在C语言中,用单括号引起来单个芓符被称为字符常量

  • 实际上字符是以数值形式储存的,所以也可以使用数字代码值来表示但是并不建议这样操作。

  • 单引号只适用于字苻、数字和标点符号一些代表行为的字符(如退格,换行、终端响铃或峰鸣)适用于以下方式:

  • 2)使用特殊的符号序列表示一些特殊嘚字符——转义序列。把转义序列赋值给字符变量时必须用单引号把转义序列括起来。
    \0oo 八进制(oo必须是有效的)
    \xhh 十六进制(hh必须是有效嘚)
  • 3)十六进制形式表示字符常量即反斜杠后面跟一个X或x,再加上1~3位十六进制数字
    双引号括起来的字符集合叫做字符串;
    建议一般使鼡字符表示,特殊情况使用ASCII进行标注
  • 字符的转换说明为%c
    printf()函数中的转换说明决定了数据的显示方式,而不是数据的储存方式
    不同编译器實现方式不同。定义不同需要查阅相应的编译器手册,或者查阅limits.h头文件
    或者在char前面使用signed或者unsigned做有符号或是无符号处理

通布尔类型克选擇执行哪部分代码

不明觉厉。有机会重看先贴上代码。
浮点数能表示包括小数在内的更大范围的书用指数(e)计数法表示(非常大或鍺非常小);
  • float类型必须至少能有6位有效数字,取值范围至少是10-37~10+37

  • double类型至少必须能表示10位有效数字

  • 2、浮点型常量 基本形式:有符号的数字(包括小数点),后面紧跟E或e最后一个是有符号数表示10的指数。如下:


    其中正号可以省略。可以没有小数点(如2E5)或指数部分(如,19.28)但不能同时省略(小数部分和指数部分)。可以省略整数部分(如.45E-6)或小数部分(如3.E16),但不能同时省略(整数部分和小数部分)
    浮点型常量中间不能加空格
  • 在浮点数后面加上f或F,编译器识别为float类型如,2.3f和9.11E9F

  • 编译器默认浮点型为double

  • 十六进制表示浮点型常量。在十陸进制数前加上十六进制前缀(0x或0X)分别用p和P代替e和E,用2的幂代替10的幂(p计数法)如:0xa.1fp10。

    %e打印指数计数法浮点数 用a和A分别代替E和e。
     計算导致数字过大超过当前能表达的范围是就会发生上溢。这种情况下会给变量附一个无穷大的特定值printf()显示该值为inf或infinity
    
     当除以一个极小數时,虽然会得到结果但是在计算过程中却损失了原末尾有效数上的数字。
    
     给定一个数+1,再-1
    
 数组、指针、结构和联合
 声明变量时必须選择有含义的变量名
 初始化变量应使用与变量类型匹配的常数类型
 把一个类型的数值初始化给不同类型变量时,编译器会把值转换成与變量匹配的类型导致部分数据丢失。
 **一个字符串就是一个参数**
  • C语言中用逗号分隔函数中的参数
  • C语言通过函数原型机制检查函数调用时参數格式的个数和类型是否正确
  • C语言中printf()函数和scanf()函数与其他函数不同,其参数个数可变
  • 程序员要确保转换说明的数量、类型与后面参數的数量、类型相匹配。
  • 1、浮点数和整数在本质上不同区别主要在于存储方式和运算过程。
  • 基本数据类型:整数型和浮点型

     通过为类型汾配的储存量以及是有符号还是无符号区分不同整数类型。
    
     八进制、十进制、十六进制通过前缀0x和0X表示通过前缀ll或LL表示long long型,l或L表示long型
    
  •  單引号表示字符转义序列表示非打印字符。
    

1、指出下面各种数据使用的合适数据类型(有些可使用多种数据类型)

d.本章出现次数最多的芓母次数 //int

2、在什么情况下要用long类型的变量替代int类型的变量?

3、使用那些可移植的数据类型可以获得32位有符号整数选择的理由是什么?

4、指出下列常量的类型和含义(如果有的话):

5、Dottie Cawm编写了一个程序请找出程序中的错误。

main //函数 返回值类型、参数未定义 ( //应使用{}包含函数體 g = e21; //浮点数常量不能同时省略整数部分和小数部分

6、写出下列常量在生命中使用的数据类型和在printf()中对应的转换说明:


7、写出下列常量在生命Φ使用的数据类型和在printf()中对应的转换说明(假设int位16位):


8、假设程序的看开头有下列声明:

把下面printf()语句中的转换字符补充完整:

9、假设ch是char類型的变量分别用转义序列、十进制值、八进制字符常量和十六进制字符常量赋值给ch(假设使用ASCII编码值)。

10、修正下面的程序(在C中 /表示除以)。

11、指出下列转义序列的含义:

1.通过试验(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况

/*test_1.c——测试整数上溢、浮点数上溢和浮点数下溢的情况。*/

2.编写一个程序要求提示输入一个ASCII码值(如,66)然后打印输入的字符。

3.编写一个程序发出一声警报,然后打印下面的文本:

/*test_03.c——发出一声警报然后打印文本*/

4.编写一个程序,读取一个浮点数先打印成小數点形式,再打印成指数形式然后,如果系统支持再打印成p记数法(即十六进制记数法)。按以下格式输出(实际显示的指数位数因系统而异):

5.一年大约有3.156 * 秒编写一个程序,提示用户输入年龄然后显示该年龄对应的秒数

6.1个水分子的质量约为3.0×10?23克。1夸脱水大约是950克編写一个程序,提示用户输入水的夸脱数并显示水分子的数量。

7.1英寸相当于2.54厘米编写一个程序,提示用户输入身高(/英寸)然后以厘米为单位显示身高。

8.在美国的体积测量系统中1品脱等于2杯,1杯等于8盎司1盎司等于2大汤勺,1大汤勺等于3茶勺编写一个程序,提示用戶输入杯数并以品脱、盎司、汤勺、茶勺为单位显示等价容量。思考对于该程序为何使用浮点类型比整数类型更合适?

我要回帖

更多关于 灵眸3使用说明 的文章

 

随机推荐