【9-14】C笔记
来源:互联网 发布:java参数&传递 编辑:程序博客网 时间:2024/04/24 05:40
1.定义变量的同时千万千万别忘了初始化。定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据。
2.不同类型数据之间的运算要注意精度扩展问题,一般低精度数据将向高精度数据扩展。
3:关于sizeof
#include <iostream.h>
int main()
{
char *p=NULL;
char a[100]={0};
cout<<"the sizeof (*p) is "<<sizeof(*p)<<endl;
cout<<"the sizeof (NULL) is "<<sizeof(NULL)<<endl;
cout<<"the sizeof (a) is "<<sizeof(a)<<endl;
cout<<"the sizeof (&a) is "<<sizeof(&a)<<endl;
cout<<"the sizeof (&a[0]) is "<<sizeof(&a[0])<<endl;
cout<<"the sizeof (a[100]) is "<<sizeof(a[100])<<endl;
return 0;
}
the sizeof (*p) is 1
the sizeof (NULL) is 4
the sizeof (a) is 100
the sizeof (&a) is 100
the sizeof (&a[0]) is 4
the sizeof (a[100]) is 1
Press any key to continue
4.case 后面只能是整型或字符型的常量或常量表达式(想想字符型数据在内存里是怎么存的)。
5.在C 语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理
6.按照ANSI(American National Standards Institute)标准,不能对void 指针进行算法操作,即下列操作都是不合法的:
void * pvoid;
pvoid++; //ANSI:错误
pvoid += 1; //ANSI:错误
ANSI 标准之所以这样认定,是因为它坚持:进行算法操作的指针必须是确定知道其指向数据类型大小的。也就是说必须知道内存目的地址的确切值。
7.定义const 只读变量,具有不可变性。例如:
const intMax=100;
intArray[Max];
这里请在Visual C++6.0 里分别创建.c 文件和.cpp 文件测试一下。你会发现在.c 文件中,编译器会提示出错,而在.cpp 文件中则顺利运行。为什么呢?我们知道定义一个数组必须指定其元素的个数。这也从侧面证实在C 语言中,const 修饰的Max 仍然是变量,只不过是只读属性罢了;而在C++里,扩展了const 的含义,这里就不讨论了。
case 语句后面可以是const 修饰的只读变量
8.先忽略类型名(编译器解析的时候也是忽略类型名),我们看const 离哪个近。“近水楼台先得月”,离谁近就修饰谁。
const int *p; //const 修饰*p,p 是指针,*p 是指针指向的对象,不可变
int const *p; //const修饰*p,p 是指针,*p 是指针指向的对象,不可变
int *const p; //const修饰p,p 不可变,p 指向的对象可变
const int *const p; //前一个const 修饰*p,后一个const 修饰p,指针p 和p 指向的对象都不可变
9大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端模式(Little_endian):字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。
- 【9-14】C笔记
- 【9-13】C笔记
- 【9-15】C笔记
- 【9-16】C笔记
- C++plus笔记9
- C++笔记14
- C语言学习笔记14
- C语言复习笔记 14
- C语言学习笔记(9)
- 【9-16】C笔记(2)
- C语言学习笔记9
- C语言学习笔记9
- C语言复习笔记 9
- C - 笔记
- c笔记
- c笔记
- C 笔记
- c 笔记
- oracle获取字符串长度函数length()和hengthb()
- posix 多线程小结
- Apple Store 的翻新机怎样?
- error LNK2001: unresolved external symbol
- android 指针根据手势转动
- 【9-14】C笔记
- 标准C库和unbuffered I/O
- Poj 2096 (dp求期望)
- 计算矩形旋转角度(不精确)
- Something about html
- 如何使用SetTimer MFC 够详细
- 实时向客户端输出数据(例如1秒输出一行) 要注意的两个问题
- java.lang.OutOfMemoryError: Java heap space 解决方法
- 即时显示缩略图