重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
main()
在洮南等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、做网站 网站设计制作按需策划设计,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站,外贸网站制作,洮南网站建设费用合理。
{
char
p[]={'a','b','c'},q[]="abc";
//定义字符数组
注意:p和q不同-为q分配4个字节的空间
{'a','b','c','\0'}
printf("%d
%d\n",sizeof(p),sizeof(q));
//sizeof
是C里面的关键字
并非函数,意思是数组p和q
所占的内存多少
单位是字节
getch();//用此命令可以在运行的的时候,按任意键退出
,如果没有此命令,屏幕闪一下就没了(程序结束就退出)
所以看不见结果
注:在VC
中
调试(那个感叹号
)的时候已经内置此命令即使不用getch()
还是可以看到结果的
参数char str[] 等同于 char *str;而str表示指向头元素的指针,而C/C++语言中把指针是看成一个是对地址的编码。在32位的系统中,这个编码是用一个32位的整数来表示的,也就是说如果你用sizeof(str)计算这个数组的长度就相当于sizeof(int)一个,其结果是4。如果你的目的是要表示这个数组的长度就得使用strlen(str)/sizeof(str[0]);strlen(str)表示的是str真是表量的长度。
system(执行shell命令)相关函数fork,execve,waitpid,popen表头文件#include定义函数intsystem(constchar*string);函数说明system()会调用fork()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD信号会被暂时搁置,SIGINT和SIGQUIT信号则会被忽略。返回值如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh失败所返回的127,因此最好能再检查errno来确认执行成功。附加说明在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。范例#includemain(){system(“ls-al/etc/passwd/etc/shadow”);}执行-rw-r--r--1rootroot705Sep313:52/etc/passwd-r---------1rootroot572Sep215:34/etc/shadow
C语言中的sizeof是一个很有意思的关键字,经常有人用不对,搞不清不是什么。我以前也有用错的时候,现在写一写,也算是提醒一下自己吧。反正现在来看,还在搞sizeof是什么意思,怎么用正确,还是有点搞笑,都经常用的东西,没有理解透彻,就差的太远了。
一 sizeof是什么
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等,sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。这个操作数不好理解对吧?后面慢慢看就明白了。sizeof的返回值是size_t,在64位机器下,被定义为longunsignedint。
二sizeof如何使用
1、用于数据类型
使用形式:sizeof(type)。其中type如int、double等。例如sizeof(int)、sizeof(char*)、sizeof(double)。这个时候sizeof后面的类型必须用括号()包起来,不包起来是错误的,通过不了编译。其中sizeof(void*)在64位下是8,而sizeof(void)是1。其实,在C语言中sizeof(函数),
如sizeof(main),结果也是1。但是在C++中,sizeof(void)和sizeof(函数)都是非法的,通过不了编译,后面C++就不说了,现在讲C嘛。其实sizeof(函数),sizeof(void)虽然是1,但是是不正确的使用方式。
2、用于变量
使用形式:sizeof(var)或sizeofvar。当操作基本数据类型的时候,在我64位电脑的结果如下
作用是:计算常量、变量、数据类型在内存中占用的字节数
三、用sizeof计算常量在内存中占用的字节数
sizeof(1)计算常量1在内存中占用的字节数 4
1默认的事一个10进制的整数(int)4
sizeof(2.3f);计算float类型的常量在内存中占用的字节数4
sizeof(2.3); 计算double类型的常量在内存中占用的字节数8
sizeof('a'); 计算'a'字符常量在内存中占用的字节数 1 4?