C语言变量定义与数据溢出(初学者)

1、变量定义的一般形式为:类型说明符、变量名标识符等;例:int a,b,c;(abc为整型变量)

在书写变量定义时应注意以下几点:

(1)允许在一个类型说明符后,定义多个相同类型的变量。各变量之间用“,”间隔。类型说明符与变量名之间用一个空格间隔。

(2)最后一个变量之后必须以“;”结尾。

(3)变量定义必须放在变量使用之前,一般放在函数体的开头部分。

注:有符号整型遇无符号整型会统一变为有符号整型。

2、整型数据的溢出:

#include <stdio.h>;

int main()

{

    short int a,b;

    a=32767;

    b=a+1;

    printf("a=%d,a+1=%d\n",a,b);

    return 0;

}

  

     /*result: a=32767,a+1=-32768

     analysis: 一个2字节的整型变量只能容纳-32768~32767范围内的数,无法表示大于32767或小于-32768的数。遇到此情况就会发生溢出

当发生整型数据溢出时就要考虑换整型变量符号了。

原文地址:https://www.cnblogs.com/lvfengkun/p/10147010.html

时间: 2024-11-09 03:07:54

C语言变量定义与数据溢出(初学者)的相关文章

c语言变量于常量数据

在程序的世界中,可以让计算机按照指令做很多事情,如进行数值计算.图像显示.语音对话.视频播放.天文计算.发送邮件.游戏绘图以及任何我们可以想象到的事情.要完成这些任务,程序需要使用数据,即承载信息的数字与字符. 在计算机中,数据的性质和表示方式可能不同.所以需要将相同性质的数据归类,并用一定数据类型描述.任何数据对用户都呈现常量和变量两种形式.常量是指程序在运行时其值不能改变的量.常量不占内存,在程序运行时它作为操作对象直接出现在运算器的各种寄存器中.变量是指在程序运行时其值可以改变的量.变量的

R 学习笔记《六》 R语言初学者指南--访问变量、处理数据子集

注意:关闭R之前务必保存工作空间,保证学习的连续性.这样以前数据的控制台命令执行的效果以及相关变量仍然保存在内存中. 1 访问数据框变量 建议:在read.table命令执行names查看要处理的变量 names(Squid) [1] "Sample" "Year" "Month" "Location" "Sex" "GSI" 1.1 str函数 str函数可以查看数据框中每个变量的属性

c语言位域的使用注意事项——数据溢出

c语言可以使用位域来节省变量的空间,例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位.位域的取值范围非常有限,数据稍微大些就会发生溢出,这个字使用keil的使用,keil提示,溢出的警告, 因此不能忽视keil的任何警告,否则数据溢出了,你代码的功能是完不成的. struct pack{unsigned a:12;  unsigned  :20;//该位域成员不能使用,用于填充unsigned c:6;  }; 另一种是可以拿来填充,因为存在内存对齐的原因. 原文地址

C语言变量声明问题——变量定义一定要放在所有执行语句/语句块的最前面吗?

报错信息:error C2065: 'salary' : undeclared identifier #include <stdio.h> void main(){ printf("我的成绩是100分!");//不使用变量 int salary;//使用变量 salary = 100; printf("我的成绩是%d分!",salary); return 0; } 问题根源:编译器问题——C89和C99 C89规定,在任何执行语句之前,在块的开头声明所有

程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。

程序通过定义学生结构体变量,存储学生的学号.姓名和3门课的成绩.函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据.例如,若b所指变量t中的学号.姓名和三门课的成绩一次是:10002."ZhangQi".93.85.87,修改后输出t中的数据应为:10004."Lijie".93.85.87. #include <stdio.h>#include <string.h>struct student { lo

C语言变量的定义和声明

今天犯了一个低级的错误,在头文件中定义了一个变量,而该头文件被多个源文件调用,导致该变量重复定义.然后我就把改变量改成static类型的了,这下编译倒是不出错了,就是结果跟我想象的不一样,在一个文件中改了,而在另一个文件用的时候,结果为0. 然后发现这个错误好低级,正确的用法是在源文件中定义,在头文件中声明,而别的源文件想用,就引用该头文件. 我们来说说定义和声明的关系: 定义:指有这么个东西,而且就放在这. 声明:仅仅指有这么个东西,它是在别的文件中定义的. 所以定义只能一次,而声明是可以多次

Go语言基础变量定义及初始化

package main import "fmt" func main(){ //变量定义 var v1 int var v2 string var v3 [10] int //数组 var v4 [] int //数组切片 var v5 struct{ f int } var v6 *int //指针 var v7 map[string] int //key 为string value为int的map var v8 func (a int) int //变量初始化 var var1

常用的C语言宏定义

常用的C语言宏定义 1,防止一个头文件被重复包含      #ifndef COMDEF_H      #define COMDEF_H          //头文件内容      #endif       2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植.       typedef   unsigned char       boolean;      /* Boolean value type. */             typedef   uns

[转]c语言宏定义#define的理解与资料整理

原文地址:http://www.cnblogs.com/haore147/p/3646934.html 1. 利用define来定义 数值宏常量 #define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎.它可以出现在代码的任何地方,从本行宏定义开始,以后的代码就就都认识这个宏了:也可以把任何东西定义成宏.因为编译器会在预编译的时候用真身替换替身,而在我们的代码里面却又用常常用替身来帮忙. 看例子: 1 #define PI 3.141592654 在此后的代码