c笔记
来源:互联网 发布:java qq登录 编辑:程序博客网 时间:2024/05/01 21:52
1、遇到的关于变量存储问题
int main(){ short b;//b放置在栈上,占用2个字节 char a[100];//需要在栈上开辟100个字节,a的值是其首地址 char s[]=”abcde”;//s在栈上,占用4个字节,“abcde”本身放置在只读数据存储区,占6字节。s是一个地址常量,不能改变其地址数值,即s++是错误的。 char* p1;//p1在栈上,占用4个字节 char* p2 =”123456”;//”123456”放置在只读数据存储区,占7个字节。p2在栈上,p2指向的内容不能更改,但是p2的地址值可以改变,即p2++是对的。 static char bss_2[100];//局部未初始化数据段 static int c=0 ;//局部(静态)初始化区 p1 = (char*)malloc(10*sizeof(char));//分配的内存区域在堆区 strcpy(p1,”xxx”);//”xxx”放置在只读数据存储区,占5个字节 free(p1);//使用free释放p1所指向的内存 return 0;}
2、对于strlen函数的返回值是一个无符号数,所以返回值相减的话不会产生负数值,因此不能进行大小值的比较:
例如: 这样做是不对的
if((strlen(a)-strlen(b)) <=0){ 。。。。。。。}
再看一下strlen原型的实现
size_t strlen(const char* s){ size_t length = 0; assert(s); while(*s++) { length++; } return length;}
里面的assert函数的功能是判断s是否为空,如果它为空的话会返回错误
- C - 笔记
- c笔记
- c笔记
- C 笔记
- c 笔记
- C笔记
- C笔记
- C笔记
- C 笔记
- C 笔记
- C笔记
- c 笔记
- C笔记
- C笔记
- C笔记
- C++/C笔记
- 笔记(C/C++)
- C++/C学习笔记
- 适配器模式
- 5.2滤波电路
- VC项目工程配置
- 广义特征值
- warning C6031: Return value ignored: 'GetLastError'
- c笔记
- SetUnhandledExceptionFilter + StackWalker
- 家庭云及其它(下)
- HTTP断点续传
- DCF握手机制
- 转VC各种问题
- VS2010编译缺少dll
- 教你如何迅速秒杀掉:99%的海量数据处理面试题 .
- eclipse导包出现的中文乱码