c的关于数组初始化 和 memset用法
今天为了彻底搞定一个关于c中数组初始化和声明不同情况下,比如只声明一个数组char str[20];那么这str里面是什么内容呢?我用vc6++,debug下看到都是-56饿asc码,后来请教了一个华为的大牛,他说 按照理论来说里面的内容都是有可能的,这和叫做“脏内存”或者叫做“野数组”。好了第一个问题搞懂了。
第二个问题 memset的问题,之前在万臣解析fast协议的时候,因为是刚入门C,薄荷老大给我说一般声明了数组吼都用memset一下。当时不是很理解,但是现在这句话知道了。
举例一下:
比如 char str[20];
对于str的连续20个单元都是随意的值
char str[20] = "Hello World!";
这个时候对于str,前面的字符是 Hello World 紧接着是'\0';也就是说str尽管后面没用到的内存单元也是0了,不是随意值
如果 memset(str, 0, sizeof(str));
那么这句话也是把str的前sizeof(str)个单元都赋值给0
如果是memset(str, 1, 10)
那么这句话是把str的前10个单元都赋值给1了,其余的还是 随意值
记录一下!
相关文档:
stroul,
strdup
snprintf()
atio
C中常用字符串操作函数
#include <string.h>
size_t strlen(const char *s) 测量字符串长度s的实际长度。
例如s[20]="abc",那么strlen(s)的结果是3,而不是20.这就是实际长度
char *strcat(const char *s1, const *s2) ......
这两天,给自己电脑弄了双系统,除了原来的Windows 7系统外,装上了Linux系统,使用的版本是Ubuntu
(点
击可到相应的下载页面)。开始我装的Linux版本是fedora9,对于一个根本没接触过Linux系统的人而言,使用fedora,简直让人崩溃。更
崩溃的是,我用的英文版。没的办法,又重新下载Linux,刻碟。装系统。装系统的时候 ......
C 的开始
2010年2月10日,
开始阅读家里有关"C语言"的各种资料。
使用 TurboC2.0,偶尔可能也会用到 Microsoft Visual C++ 6.0。 ......
网上有好多篇文章讲如何配置.vimrc文件来实现VIM里一键编译,看了一下比较复杂。我一般没有什么大的程序要写,一般的小程序单个C文件就搞掂了,所以简化了一下网上的配置,在.vimrc里加上两行就满足我的需求了。
set makeprg=gcc\ -Wall\ -o\ %<\ %
map <F7> :make<CR ......
As is Known to us,the function Main is the entry point of all programs.Therefore, we are usually neglecting all that we don't do,which makes us not understanding it more clearly.Now there is a sample arm program which will provide something that opration system usually do.
asm:
&nb ......