#include
#include
#include
int main(int argc, const char *argv[])
{
char str[]="hello";
char *p=str;
char *q=str+strlen(str)-1;
while(p
#include
#include
#include
void fun(int a)
{
printf("a=%d\n",a);
}
void fun_p(int *p)
{
printf("p=%p\n",p);
}
int main(int argc, const char *argv[])
{
int a=100;
int arr[]={11,22,33};
int *p=&a;//p=&a *p=a
fun(a);
fun(arr[0]);
fun(*p);
fun_p(&a);
fun_p(arr);
fun_p(p);
return 0;
}
#include
#include
#include
void fun(int *arr,int len)
{
int *p=arr;
for(int i=0;i
#include
#include
#include
void Bubble(int *p,int n)
{
for(int i=1;i*(p+j+1))
{
int t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
count++;
}
}
if(count==0)
break;
}
for(int i=0;i
int main(int argc, const char *argv[])
{
char str[]="hello";//str在栈区,字符串"hello"在只读区,
//把字符串常量复制一份给str
char *p=str;//p=str //p内存在栈区,p指向栈区str首地址
*p='H';
//正确,p修改栈区的内容
puts(str);
puts(p);
}
#include
int main(int argc, const char *argv[])
{
char str[20];
char *p=str;
printf("please enter p:");
gets(p);
for(int i=0;i='a'&&*(p+i)<='z')//if(str[i]>='a'&&str[i]<='z')
{
*(p+i)-=32;
}
}
printf("%s\n",p);
return 0;
}
#include
#include
#include
void my_strcat(char *dest,char *src)
{
int i=0;
for(i=0;*(dest+i)!='\0';i++);
for(int j=0;*(src+j)!='\0';j++)
{
*(dest+i++)=*(src+j);
}
*(dest+i)='\0';
}
int main(int argc, const char *argv[])
{
char dest[20]="das";
char src[20]="ewew";
my_strcat(dest,src);
puts(dest);
return 0;
}
void test()
{
char string[10];
char *str1="0123456789";
strcpy(string,str1);
}
答:这里声明的是一个字符串长度为10的数组,但"0123456789"的长度为11,在将str1拷贝 至string时,会导致数组越界。
①当越界访问的空间没有被占用,可以正常访问,输出垃圾值;
②当越界访问的空间被占用,但是不是重要的数据,可以访问,输出垃圾值 ;
③当越界访问的空间被占用,并且存储重要的数据,不可以访问,段错误。
int main()
{
char a;
char *str=&a;
strcpy(str,"hello")
printf(str)
return 0;
}
答:共有两处错误。
①在定义一个字符串数组的时候,不能直接定义为a,定义为a指向的是单字符a的地址,它只能容纳一个字节大小,所以在函数将字符串“hello”复制给str时,会导致越界;
②strcpy(str,"hello")与printf(str)两个语句,未使用分号结束。
char* s="AAA";
printf("%s",s);
s[0]='B';
printf("%s",s);
答:指针s指向的是字符串常量,字符串常量在只读区,只能读取不能修改,s[0]='B'表示对字符串常量的第一个值进行修改,所以会报错,出现段错误 。
int main()
{
int *MyData;
int Count=100;
int Sum,i;
for(i=0;i
答:共有两处错误。
①i
②int *MyData定义的是一个野指针,未被初始化的指针会造成计算机混乱,甚至死机【计算机随机的地址,不确定,不正确】;
③sum没有初始化,未清零。