2 qq 30137777 qq_30137777 于 2016.04.23 10:41 提问

C/C++static变量声明类型的问题
#include <iostream.h>

using namespace sd;
int main(){
    static b = 4;
    printf("%d\n", b);
    return 0;
}

为什么静态变量中没有为其指明类型,但在C中都能编译通过并打印b的值。在C++中却不行?为什么在C中,不对静态变量进行声明就能使用这个值呢?

3个回答

csdnzhch
csdnzhch   2016.04.23 11:52
已采纳

C 语言的默认规则,所有不声明类型的地方都默认是int 类型。例如 functionA(); 实际返回类型是int,不是void哦。

qq_30137777
qq_30137777 ?那c++呢?没有这种默认的说法么
大约 2 年之前 回复
CSDNXIAOD
CSDNXIAOD   2016.04.23 10:52

c变量声明问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Gorgous
Gorgous   2016.04.23 11:49

好像不写类型默认是int

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C语言 变量声明和定义的区别
转载自http://www.cnblogs.com/GavinDai/archive/2011/10/24/2222735.html 变量的声明有两种情况: 1、一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。 2、另一种是不需要建立存储空间的。 例如:extern int a 其中变量a是在别的文件中定义的。 前者是“定义性声明(defining dec
C语言学习笔记(一)变量声明的规则
声明是告诉编译器有这么个变量,但并不实现。定义就是实现这个变量,真正在内存(堆或栈中)为此变量分配空间 它们的本质区别是:是否分配内存空间,定义需要分配空间,声明不需要分配空间。 int i; 声明一个i,告诉编译器有一个i i = 0; 定义i,开辟内存; int i = 0; 声明和定义同时; 一个完整的变量声明如下: static const unsigned in
Object-C基础(4)—— 函数
C是一门结构化的编程语言,Objective-C是C的超集。 为什么要定义函数?         为了方便复用某段代码,可以将这段代码定义成一个函数,以后每次调用该函数,就相当于让程序去执行这段代码。 定义函数(function)的语法      返回值类型 函数名(形参列表)      {      }      返回值类型:可以是任何有效的类型(基本类型、构造类型、引用类型)。
【c语言问题系列教程之一】变量声明和初始化
一、基本类型 1.c语言整数类型的大小并没有精确的定义,而是随着编译器的类型而变化,ANSI C能保证的只是数据的最小尺寸。char>=8位,short>=16位,int>=16位,long>=32位。 2.因此,可以用typedef定义int16和int32,然后根据实际的机器环境把它们定义为int,short,long等类型。但是,标准头文件已经定义了标准名称int16_t,uint32_
非静态内部类不能有静态声明
/** * Description: * Copyright (C), 2005-2008, Yeeku.H.Lee * This program is protected by copyright laws. * Program Name: * Date: * @author Yeeku.H.Lee kongyeeku@163.com * @version 1.0 */ pu
C语言的静态变量声明static
static声明外部变量 static的作用域限定为被编译源文件的剩余部分,不会和同一程序中的其他文件中的相同的名字相冲突。 static声明函数 除了对该函数声明所在的文件可见外,其他文件都无法访问。 static声明内部变量 该变量只能在特定函数中使用,但一直占据存储空间。变量的值不会因函数的结束而变化,static声明的变量可以起到外部变量的一部分作用。 测试代码如下,返回值为1
C语言基本类型声明、初始化、大小及格式说明符总结
C语言基本类型声明、初始化、大小及格式说明符总结 类型 声明及初始化 大小(byte) 格式说明符 char char a=’2’; char a=50,b=062,c=0x32; char a=’\062’,b=’\x32’; char a=’\n’,b=’\012’,c=’\x0a’; 字面
C语言中存储类型和Static关键字
变量的存储类型是指存储变量值的内存类型。变量的存储类型决定变量何时创建、何时销毁以及它的值将保持多久。有三个地方可以用于存储变量:普通内存、运行时内存、运行时堆栈、硬件寄存器。静态变量:凡是在任何代码块之外声明的变量总是存储于静态内存中,也就是不属于堆栈的内存。自动变量:在代码块内部声明的变量缺省存储类型是自动的,它存储于堆栈中。如果给它加上static关键字,可以使它的存储类型从自动变为静态,但是
C语言中static类型的变量何时赋值?
答案应该是编译时赋值。 验证过程: 随便写一个c语言程序,如下: #include "stdio.h" int main(){ static int i; static int j=0x12345678; printf("%02X ",ih[t]); return 0; } 用Gcc编译,生成目标文件:gcc -c test_static.c -o test_stati
Objective-C基础之类别,扩展,协议
Objective-C的面向对象编程中,分类,扩展,协议这几个概念经常会使用到,这篇文章简单的记录了我在学习Objective-C时候对它们的理解