69,373
社区成员
发帖
与我相关
我的任务
分享
char str[20];
str = "Hello C!";//error 如果成功,那么造成地址覆盖,那么原先地址丢失,就是内存泄露
char str[20] = "Hello C!";//初始化赋值,解释就我需要申请20个字符,首地址是“Hello C!”首地址
char *str1 = "Hello C!";//这是指针地址赋值,不是拷贝
//需要区分拷贝与赋值
char str[20] = "Hello C!";//初始化赋值,解释就我需要申请20个字符,首地址是“Hello C!”首地址
字符串常量的底层实现就是指针
char str[20]; str = "Hello C!";//error 如果成功,那么造成地址覆盖,那么原先地址丢失,就是内存泄露 char str[20] = "Hello C!";//初始化赋值,解释就我需要申请20个字符,首地址是“Hello C!”首地址 char *str1 = "Hello C!";//这是指针地址赋值,不是拷贝 //需要区分拷贝与赋值
char str[20];
str = "Hello C!";//error
这里没有内存泄漏的吧!非法操作吧,"Hello c"在地址在静态区的,str的地址在栈区
char str[20];
str = "Hello C!";//字符串赋值操作不可以直接用==
//应该用strncpy/memcpy等函数
char str[20] = "Hello C!";
//数组初始化,只有初始化时才可以的
char *str1;
str1 = "Hello C!";
//这个是把常量字符串的首地址赋值给str1,地址赋值是可以,通过地址操作