c++基础学习(05AM)
2015-06-14 22:50
295 查看
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;
}
}
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;
}
}
相关文章推荐
- OS X以及iOS平台上的的动态库导出c++接口类
- c++ virtual总结
- KMP算法匹配原理以及C++实现
- VC++调试,TRACE()函数的用法
- Effective C++ 条款02解读: 尽量以const, enum, inline替换#define
- 第14周 【项目4 - 处理C++源代码的程序】(1)
- 素数环
- C语言中关于%d的使用方法
- (C++)浅谈多态基类析构函数声明为虚函数
- eclipse上配置c语言开发环境
- C++中的log
- c++ cin一个整数 输入其它字符产生死循环错误的解决方法。
- 深入Windows内核——C++中的消息机制
- 令Code::Blocks支持C++11特性
- c++ list
- Ecplise编译Cygwin环境、使用CDT插件开发C/C++
- c++ 头文件<cwchar>中常见函数的实现!!!
- C语言中static的作用
- c语言中realloc()函数解析
- C++中的临时对象