C语言中整型数据可以赋给实型变量。 答案给的正确 ; 实行数据包括char float double 后面两个可以兼容自动换成对应类型 char类型 可能会出错 所以他应该是考虑到了强制类型转换 那可以强制类型转换 什么转换都可以 ,不是很明白这题的意义 对于字符串常量 “string!”,系统已自动在最后加入了"\0"字符,表示串结尾 语句 char str[10] = “string!”; 和 char str[10] = {“string!”}; 等价
void GetMemory(char **p, int num)
{
*p = (char *)malloc(num);//错误原因以为需要sizeof
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
以下叙述中正确的是(A) A 只要适当地修改代码,就可以将do-while与while相互转换 do while 转换成while很简单 在循环体外面做一次就可以 while 怎么转换成 do while flag = 1 while(flag || 循环条件) { if(flag) { 循环体 flag != flag; } else{ 循环体 } } B 对于"for(表达式1;表达式2;表达式3) 循环体"首先要计算表达式2的值,以便决定是否开始循环 先计算表达式1 C 对于"for(表达式1;表达式2;表达式3) 循环体",只在个别情况下才能转换成while语句 暂时想不到什么情况不可以 D 如果根据算法需要使用无限循环(即通常所称的"死循环") ,则只能使用while语句 死循环 while do while for goto 都可以
char array[] = "abcdefg";
printf("%d\n", sizeof(array)); //字符串后面有\0 所以大小为8
char *p = "abcdefg";
printf("%d\n", sizeof(p)); //32位操作系统下指大小是4 64位为8
void func(char p[10])
{
printf("%d\n", sizeof(p)); // 数组传参时候传递的是指针 大小同上
}
void func(char (& p)[10])
{
printf("%d\n", sizeof(p)); //char字符的数组大小每个为1 10个大小//就是10
}
int main(void)
{
printf("%d\n", sizeof(char[2])); // char[2]数组的大小 2
printf("%d\n", sizeof(char &)); //是char类型元素的大小 1
return 0;
}
using namespace std;
void print(char **str)
{
++str;
cout<<*str<<endl;
}
int main()
{
static char *arr[]={"hello", "world", "c++"};
char **ptr;
ptr=arr;
print(ptr);
return0;
}
结果world
unsigned short A = 10;
printf("~A = %u\n", ~A); // -10 取反就算对最大值 -10
char c = 128;
printf("c=%d\n", c); // 对范围取余之后 + -128
#define N 2017 int arr[N] #define N 2017 int arr[N*2] int i=2017; int arr[i]; // i为变量 编译报错 int arr[]={1};