1. 生命一个全局变量,必须在其他地方有定义
2. 为了安全,尽量避免使用全局变量。
3. 参数表里的变量是接收数据的。
4. 当定义一个无符号的变量,赋值给他它一个负值,结果却显示是一个很大的数据,原因在于编译器将符号位1当作数据来处理了
5.变量的作用域与可见性,作用域指的是生命期,可见性指的是名字的有效范围。
6.静态全局变量只在本文件中使用(一个程序可以创建多个文件,比如头文件,实现文件)
静态局部变量把生命周期延长到整个程序结束
静态变量只在初次创建的时候初始化一次
相关代码:
#include <iostream>
using namespace std;
int count(static int m)
{
m++;
return m;
}
int main()
{
int n=0;
cout << count(n) << endl;
cout << count(n) << endl;
cout << count(n) << endl;
return 0;
}
这部分代码在vc6.0上执行,与在linux上执行,效果不一样?
7.数组元素在内存空间中连续存放,没有赋初值时为垃圾数据。
对变量可以进行的操作,都可以对数组元素进行。
数组名是一个内存地址,表示这个数组在哪里秘书组名表示第一个元素的地址。
为了跟c语言兼容,c++ 输出字符变量地址时,它会自动改成从这个地址开始存放的系列字符到向后遇到的第一个‘\0’时结束。
初始数据不够时后面自动补0
默认情况下,小数部分为0时,不输出小数部分。
如果数组中没有写数组元素个数,编译器会自己去数,但不提倡定义数组的时候不写数组个数。
#include <iostream>
using namespace std;
int main()
{
int a[5]={1,2,3,4,5};
for(int i=0;i<5;i++)
cout << a[i] << endl;
cout << "===============" << endl;
cout << sizeof(int [5]) << endl;
cout << sizeof(a[0]) << endl;
cout << a << endl;
cout << a[1] << endl;
char name[20]={'a','b','\0','c'};
char ch[10];
cout << name << endl;
cout << ch << endl;
cout << "&ch=" << hex << "0x" << (long)&ch << endl;//输出字符数组首地址的方法。
cout << "================" << endl;
double d[5]={};
int s[]={10,20,30};
cout << sizeof(d) << endl;
cout << sizeof(s) << endl;
return 0;
}
}