在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么?
函数名: atol
功能: 把字符串转换成长整型数
函数的原型: long atol(const char *nptr);
程序例子:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
long l;
char *str = "98765432";
l = atol(str);
printf("string = %s integer = %ld\n", str, l);
return(0);
}
对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?
c用宏定义,c++用inline
软件测试都有那些种类?
黑盒:针对系统功能的测试
白盒:测试函数功能,各函数接口
确定模块的功能和模块的接口是在软件设计的那个阶段完成的?
概要设计阶段
下面代码中,请问 p1+5=? p2+5=?
#include<stdio.h>
int main()
{
unsigned char *p1;
unsigned long *p2;
p1=(unsigned char*)0x801000;
p2=(unsigned long*)0x810000;
printf("p1=%x\n",p1);
printf("p2=%x\n",p2);
p1=p1+5;
p2=p2+5;
printf("%d\n",sizeof(*p2));
printf("p1+5=%x\n",p1);
printf("p2+5=%x\n",p2);
}
输出结果:
p1=801000
p2=810000
8
p1+5=801005
p2+5=810028
解释:
p1=(unsigned char*)0x801000;
是给指针变量赋值,即把十六进制0x801000放到字符指针变量中,即指针变量p1的值就是0x801000
p2=(unsigned long*)0x810000;也是给指针变量赋值,同上
输出结果p1+5的值是801005,因为指针变量指向的值字符,加一表示指针向后移动一个字节,那么加5代表向后移动5个字节,所以输入801005
p5+5的值是801016,因为指针变量指向的长e799bee5baa6e78988e69d8331333262373264整形的,加一表示指针向后移动8个字节,那么加5代表向后移动20个字节,所以输入810040,(输出时十六进制)要是十进制就是810028了
请问下面程序有什么错误?
int a[60][250][1000],i,j,k;
for(k=0;k<1000;k++)
for(j=0;j<250;j++)
for(i=0;i<60;i++)
a[i][j][k]=0;
答:
把循环语句内外换一下
(编译的时候没错,运行的时候出错,但这个数组太大,如果放在栈中,还是会
溢出,要作为全局变量)